在用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 这样才好合并单元格。。