Gridview中合并相同的行或列

来源:互联网 发布:王心凌honey 知乎 编辑:程序博客网 时间:2024/05/16 05:03

 

   #region 合并单元格 合并某一行的所有列  ///  <summary>   ///  合并GridView中某行相同信息的行(单元格)  ///  </summary>   ///  <param  name="GridView1">GridView对象</param>   ///  <param  name="rows">需要合并的行(当然也可以是数组)</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

原创粉丝点击