补充一下,如果想动态为列设定格式,需要一个数组来定义每列的格式的信息。参考代码(VB):
Dim i As Integer
'头部分
If e.Item.ItemType = ListItemType.Header Then
Formats = New String(e.Item.Cells.Count - 1) {}
For i = 0 To e.Item.Cells.Count - 1
Formats(i) = "M"'初始格式化信息,避免为空
Next
For i = 0 To e.Item.Cells.Count - 1
If e.Item.Cells(i).Text = "CS" Then
Formats(i) = "0.00"
e.Item.Cells(i).Text = "平均车速"
ElseIf e.Item.Cells(i).Text = "CSL" Then
e.Item.Cells(i).Text = "车数"
ElseIf e.Item.Cells(i).Text = "JZ" Then
e.Item.Cells(i).Text = "净重"
ElseIf e.Item.Cells(i).Text = "LB" Then
e.Item.Cells(i).Text = "类别"
Formats(i) = "T"
ElseIf e.Item.Cells(i).Text = "SHDWNAME" Then
e.Item.Cells(i).Text = "收货单位"
End If
Next
'内容部分
ElseIf e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim j As Integer
For j = 0 To e.Item.Cells.Count - 1
If Formats(j) = "T" Then
If Trim(e.Item.Cells(j).Text) = "J" Then e.Item.Cells(j).Text = "购进"
If Trim(e.Item.Cells(j).Text) = "C" Then e.Item.Cells(j).Text = "售出"
End If
If Formats(j) = "0.00" Then
e.Item.Cells(j).Text = CType(e.Item.Cells(j).Text, Double).ToString(Formats(j))
End If
在DataGrid的ItemDatabound事件中,添加如下代码:
If e.Item.ItemType = ListItemType.Header Then
str=e.Item.Cells(i).Text
End if
第一行是判断是否为头
如果是,取出这个头的名字。
同理还有:
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
...
End IF
这个是内容项(当然需要名括交替项)