在用Gridview做一些表格的时候可能会用到
- private void Unite(DataGrid dgr)
- {
- int i;
- string LastType;
- string LastType1;
- int LastCell;
- int LastCell1;
- if (dgr.Items.Count > 0)
- {
- LastType = ((Label)dgr.Items[0].Cells[0].FindControl("deptclass")).Text;
- LastType1 = ((Label)dgr.Items[0].Cells[1].FindControl("deptname")).Text;
- dgr.Items[0].Cells[0].RowSpan = 1;
- dgr.Items[0].Cells[1].RowSpan = 1;
- LastCell = 0;
- LastCell1 = 0;
- for (i = 1; i < dgr.Items.Count; i++)
- {
- if (((Label)dgr.Items[i].Cells[0].FindControl("deptclass")).Text == LastType)
- {
- dgr.Items[i].Cells[0].Visible = false;
- dgr.Items[LastCell].Cells[0].RowSpan++;
- }
- else
- {
- LastType = ((Label)dgr.Items[i].Cells[0].FindControl("deptclass")).Text;
- LastCell = i;
- dgr.Items[i].Cells[0].RowSpan = 1;
- }
- if (((Label)dgr.Items[i].Cells[1].FindControl("deptname")).Text == LastType1)
- {
- dgr.Items[i].Cells[1].Visible = false;
- dgr.Items[LastCell1].Cells[1].RowSpan++;
- }
- else
- {
- LastType1 = ((Label)dgr.Items[i].Cells[1].FindControl("deptname")).Text;
- LastCell1 = i;
- dgr.Items[i].Cells[1].RowSpan = 1;
- }
- }
- }
- }
当然,在实验这个方法的前提是需要对绑定的数据进行按组排序,简单点说就是
select aa ,bb,cc from abc group by aa,bb,cc 这样才好合并单元格。。
这段代码展示了如何在DataGrid中实现单元格合并。通过遍历Gridview的每一项,对比相邻单元格内容,当内容相同时隐藏当前单元格并增加前一单元格的RowSpan,以此达到合并效果。实现此功能前,需确保数据已按相关字段排序。

223

被折叠的 条评论
为什么被折叠?



