- gridView合并单元格
- #region 合并单元格 合并某一行的所有列
- /// <summary>
- /// 合并GridView中某行相同信息的行(单元格)
- /// </summary>
- /// <param name="GridView1">GridView对象</param>
- /// <param name="cellNum">需要合并的行</param>
- public static void GroupRow(GridView GridView1, int rows)
- {
- TableCell oldTc = GridView1.Rows[rows].Cells[0];
- for (int i = 1; i < GridView1.Rows[rows].Cells.Count; i++)
- {
- TableCell tc = GridView1.Rows[rows].Cells[i]; //Cells[0]就是你要合并的列
- if (oldTc.Text == tc.Text)
- {
- tc.Visible = false;
- if (oldTc.ColumnSpan == 0)
- {
- oldTc.ColumnSpan = 1;
- }
- oldTc.ColumnSpan++;
- oldTc.VerticalAlign = VerticalAlign.Middle;
- }
- else
- {
- oldTc = tc;
- }
- }
- }
- #endregion
- #region 合并单元格 合并一行中的几列
- /// <summary>
- /// 合并单元格 合并一行中的几列
- /// </summary>
- /// <param name="GridView1">GridView ID</param>
- /// <param name="rows">行</param>
- /// <param name="sCol">开始列</param>
- /// <param name="eCol">结束列</param>
- public static void GroupRow(GridView GridView1, int rows,int sCol,int eCol)
- {
- TableCell oldTc = GridView1.Rows[rows].Cells[sCol];
- for (int i = 1; i < eCol - sCol; i++)
- {
- TableCell tc = GridView1.Rows[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列
- tc.Visible = false;
- if (oldTc.ColumnSpan == 0)
- {
- oldTc.ColumnSpan = 1;
- }
- oldTc.ColumnSpan++;
- oldTc.VerticalAlign = VerticalAlign.Middle;
- }
- }
- #endregion
- #region 合并单元格 合并某一列所有行
- /// <summary>
- /// 合并GridView中某列相同信息的行(单元格)
- /// </summary>
- /// <param name="GridView1"></param>
- /// <param name="cellNum"></param>
- public static void GroupCol(GridView GridView1, int cols)
- {
- if (GridView1.Rows.Count < 1 || cols > GridView1.Rows[0].Cells.Count - 1)
- {
- return;
- }
- TableCell oldTc = GridView1.Rows[0].Cells[cols];
- for (int i = 1; i < GridView1.Rows.Count; i++)
- {
- TableCell tc = GridView1.Rows[i].Cells[cols];
- if (oldTc.Text == tc.Text)
- {
- tc.Visible = false;
- if (oldTc.RowSpan == 0)
- {
- oldTc.RowSpan = 1;
- }
- oldTc.RowSpan++;
- oldTc.VerticalAlign = VerticalAlign.Middle;
- }
- else
- {
- oldTc = tc;
- }
- }
- }
- #endregion
- #region 合并单元格 合并某一列中的某些行
- /// <summary>
- /// 合并单元格 合并某一列中的某些行
- /// </summary>
- /// <param name="GridView1">GridView ID</param>
- /// <param name="cellNum">列</param>
- /// <param name="sRow">开始行</param>
- /// <param name="eRow">结束列</param>
- public static void GroupCol(GridView GridView1, int cols,int sRow,int eRow)
- {
- if (GridView1.Rows.Count < 1 || cols > GridView1.Columns.Count - 1)
- {
- return;
- }
- TableCell oldTc = GridView1.Rows[sRow].Cells[cols];
- for (int i = 1; i < eRow - sRow; i++)
- {
- TableCell tc = GridView1.Rows[sRow + i].Cells[cols];
- tc.Visible = false;
- if (oldTc.RowSpan == 0)
- {
- oldTc.RowSpan = 1;
- }
- oldTc.RowSpan++;
- oldTc.VerticalAlign = VerticalAlign.Middle;
- }
- }
- #endregion
- /// <summary>
- /// 合并GridView中某列相同信息的行(单元格)
- /// </summary>
- /// <param name="GridView1">GridView</param>
- /// <param name="cellNum">第几列</param>
- 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合并单元格
最新推荐文章于 2018-07-29 14:46:04 发布