日期:2012-05-21  浏览次数:20468 次

Private Sub UnitDataGridItem(ByVal intCell As Integer)
Dim objDataGridItem As DataGridItem
Dim strCell1 As String = ""
Dim strCell2 As String = ""
Dim objLiteralControl As LiteralControl
Dim intSpan As Integer = 1
Dim objDataGridItemToSpan As DataGridItem
Dim i, j As Integer
Dim strTemp As String
For i = 0 To DataGrid1.Items.Count - 1
intSpan = 1
objLiteralControl = CType(DataGrid1.Items(i).Cells(intCell).Controls(0), LiteralControl)
strCell1 = objLiteralControl.Text

For j = i + 1 To DataGrid1.Items.Count - 1
objLiteralControl = CType(DataGrid1.Items(j).Cells(intCell).Controls(0), LiteralControl)
strCell2 = objLiteralControl.Text
If strCell1 = strCell2 Then
intSpan += 1
DataGrid1.Items(i).Cells(intCell).RowSpan = intSpan
DataGrid1.Items(j).Cells(intCell).Visible = False
Else
Exit For
End If
Next
i = j - 1
Next

End Sub
除了設定RowSpan 外,還要把下面行的Visible 設成False,否則不起作用,底下會多出一個column.這個DataGrid的每個cell中都包含一個LiteralControl,如果沒有的話,就直接用DataGrid1.Items(i).Cells(intCell).Text即可.參數intCell ,是指要合併的那個列.