合并datagrid中内容相同的单元格
有时,我们要把一列中内容相同的单元格合并起来。如下图:
此主题相关图片如下:
合并后的效果图:
此主题相关图片如下:
下面就说说怎么实现的:
Sub SpanGrid()
Dim i As Integer
Dim j As Integer
Dim intSpan As Integer
Dim strTemp As String
For i = 0 To DGrid.Items.Count - 1
intSpan = 1
'得到第一列(颜色)、第一行单元格中的内容。这里得到是“红色Red”。(datagrid里用了模版列)
strTemp = CType(DGrid.Items(i).Cells(0).Controls(1), System.Web.UI.WebControls.Label).Text
’循环判断。判断第一列中,和第一行相同的内容。相同做记号,intspan加一
For j = i + 1 To DGrid.Items.Count - 1
If String.Compare(strTemp, CType(DGrid.Items(j).Cells(1).Controls(1), System.Web.UI.WebControls.Label).Text) = 0 Then
intSpan += 1
'利用datagrid的rowspan属性。(设置控件中单元格跨越的行数为intspan)
DGrid.Items(i).Cells(0).RowSpan = intSpan
’把内容相同单元格隐藏
DGrid.Items(j).Cells(0).Visible = False
Else
Exit For
End If
Next
i = j - 1
Next
End Sub
=======
引用:
Sub bindgrid()
'把数据绑定到datagrid
........
SpanGrid()
End Sub
DataGrid的首行进行合并单元格!
protected override void OnItemCreated(DataGridItemEventArgs e)
{
if ((ListItemType)e.Item.ItemType == ListItemType.Header)
{
// 获得DataGrid的列数,并清除所有单元格
int colcount = e.Item.Cells.Count;
e.Item.Cells.Clear();
// 新建一个单元格
TableCell c = new TableCell();
c.ColumnSpan = colcount;
// 新建一个Label用于存放首行的文字
Label l=new Label();
l.Text = "这是首行文字";
// 添加到DataGrid的首行
c.Controls.Add(l);
e.Item.Cells.AddAt(0, c);
}
}
此主题相关图片如下:
合并后的效果图:
此主题相关图片如下:
下面就说说怎么实现的:
Sub SpanGrid()
Dim i As Integer
Dim j As Integer
Dim intSpan As Integer
Dim strTemp As String
For i = 0 To DGrid.Items.Count - 1
intSpan = 1
'得到第一列(颜色)、第一行单元格中的内容。这里得到是“红色Red”。(datagrid里用了模版列)
strTemp = CType(DGrid.Items(i).Cells(0).Controls(1), System.Web.UI.WebControls.Label).Text
’循环判断。判断第一列中,和第一行相同的内容。相同做记号,intspan加一
For j = i + 1 To DGrid.Items.Count - 1
If String.Compare(strTemp, CType(DGrid.Items(j).Cells(1).Controls(1), System.Web.UI.WebControls.Label).Text) = 0 Then
intSpan += 1
'利用datagrid的rowspan属性。(设置控件中单元格跨越的行数为intspan)
DGrid.Items(i).Cells(0).RowSpan = intSpan
’把内容相同单元格隐藏
DGrid.Items(j).Cells(0).Visible = False
Else
Exit For
End If
Next
i = j - 1
Next
End Sub
=======
引用:
Sub bindgrid()
'把数据绑定到datagrid
........
SpanGrid()
End Sub
DataGrid的首行进行合并单元格!
protected override void OnItemCreated(DataGridItemEventArgs e)
{
if ((ListItemType)e.Item.ItemType == ListItemType.Header)
{
// 获得DataGrid的列数,并清除所有单元格
int colcount = e.Item.Cells.Count;
e.Item.Cells.Clear();
// 新建一个单元格
TableCell c = new TableCell();
c.ColumnSpan = colcount;
// 新建一个Label用于存放首行的文字
Label l=new Label();
l.Text = "这是首行文字";
// 添加到DataGrid的首行
c.Controls.Add(l);
e.Item.Cells.AddAt(0, c);
}
}