完全利用後置程式碼,來實現 DataGrid 有光棒移動的效果。
完全利用後置程式碼,來實現 DataGrid 有光棒移動的效果,畫面效果如下
Dim ItemBColor As String ' 一般列背景色
Dim AltItemBColor As String ' 替代列背景色
Dim FinalBColor As String ' 決定背景色
Dim ItemFColor As String ' 一般列前景色
Dim AltItemFColor As String ' 替代列前景色
Dim FinalFColor As String ' 決定前景色
' DataGrid.ItemStyle 無設定背景色,ItemStyle.BackColor.Name="0",此時需要直接指定顏色,否則Html不認得"0"是什麼顏色
ItemBColor = IIf(dgIdxDesc.ItemStyle.BackColor.Name.ToString = "0", "#FFFFFF", dgIdxDesc.ItemStyle.BackColor.Name.ToString)
' DataGrid ItemStyle 無設定前景色,ItemStyle.BackColor.Name="0",此時需要直接指定顏色,否則Html不認得"0"是什麼顏色
ItemFColor = IIf(dgIdxDesc.ItemStyle.ForeColor.Name.ToString = "0", "#000000", dgIdxDesc.ItemStyle.ForeColor.Name.ToString)
' DataGrid.AlternatingItemItemStyle 無設定背景色,ItemStyle.BackColor.Name="0",此時需要直接指定顏色,否則Html不認得"0"是什麼顏色
AltItemBColor = IIf(dgIdxDesc.AlternatingItemStyle.BackColor.Name.ToString = "0", "#FFFFFF", dgIdxDesc.AlternatingItemStyle.BackColor.Name.ToString)
' DataGrid.AlternatingItemItemStyle 無設定前景色,ItemStyle.BackColor.Name="0",此時需要直接指定顏色,否則Html不認得"0"是什麼顏色
AltItemFColor = IIf(dgIdxDesc.AlternatingItemStyle.ForeColor.Name.ToString = "0", "#000000", dgIdxDesc.AlternatingItemStyle.ForeColor.Name.ToString)
' 非編輯模式
If Me.dgIdxDesc.EditItemIndex = -1 Then
' 若是一般列 或 替代列
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
' 若是一般列,就指定ItemBColor背景色,否則指定AltItemBColor背景色
FinalBColor = IIf(e.Item.ItemType = ListItemType.Item, ItemBColor, AltItemBColor)
' 若是一般列,就指定ItemBColor前景色,否則指定AltItemBColor前景色
FinalFColor = IIf(e.Item.ItemType = ListItemType.Item, ItemFColor, AltItemFColor)
Dim DOMText As String
' 加入MouseOver 時的DOM
DOMText = String.Format("this.style.backgroundColor='#FFD700'; this.style.color='#FF4500'; ")
e.Item.Attributes.Add("onmouseover", DOMText)
' 加入MouseOut 時的DOM
DOMText = String.Format("this.style.backgroundColor='{0}'; this.style.color='{1}'; ", FinalBColor, FinalFColor)
e.Item.Attributes.Add("onmouseout", DOMText)
End If
End If