- /// 合并GridView列中相同的行
- ///
- /// GridView对象
- /// 需要合并的列
- public static void GroupRows(GridView GridView1, int cellNum)
- {
- int i = 0, rowSpanNum = 1;
- while (i < GridView1.Rows.Count - 1)
- {
- GridViewRow gvr = GridView1.Rows[i];
- for (++i; i < GridView1.Rows.Count; i++)
- {
- GridViewRow gvrNext = GridView1.Rows[i];
- if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
- {
- gvrNext.Cells[cellNum].Visible = false;
- rowSpanNum++;
- }
- else
- {
- gvr.Cells[cellNum].RowSpan = rowSpanNum;
- rowSpanNum = 1;
- break;
- }
- if (i == GridView1.Rows.Count - 1)
- {
- gvr.Cells[cellNum].RowSpan = rowSpanNum;
- }
- }
- }
- }
- ///
- /// 根据条件列合并GridView列中相同的行
- ///
- /// GridView对象
- /// 需要合并的列
- /// /// 条件列(根据某条件列还合并)
- public static void GroupRows(GridView GridView1, int cellNum, int cellNum2)
- {
- int i = 0, rowSpanNum = 1;
- while (i < GridView1.Rows.Count - 1)
- {
- GridViewRow gvr = GridView1.Rows[i];
- for (++i; i < GridView1.Rows.Count; i++)
- {
- GridViewRow gvrNext = GridView1.Rows[i];
- if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)
- {
- gvrNext.Cells[cellNum].Visible = false;
- rowSpanNum++;
- }
- else
- {
- gvr.Cells[cellNum].RowSpan = rowSpanNum;
- rowSpanNum = 1;
- break;
- }
- if (i == GridView1.Rows.Count - 1)
- {
- gvr.Cells[cellNum].RowSpan = rowSpanNum;
- }
- }
- }
- }
- 第二个方法只是在第一个方法的修改了一点点, 在判断单元格的时候,加上了一个条件列:
- if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)。当然,第二个方法还可以扩展,根据多个列的条件来合并。
在GRIDVIEW中合并单元格
最新推荐文章于 2016-08-31 10:21:54 发布