gridview合并单元格

来源:互联网 发布:淘宝童装店标志设计 编辑:程序博客网 时间:2024/04/29 08:29
#region 合并单元格 合并某一行的所有列
public static void GroupRow(GridView gridView)
{
    for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
    {
       GridViewRow row = gridView.Rows[rowIndex];
       GridViewRow previousRow = gridView.Rows[rowIndex + 1];
       for (int i = 0; i < row.Cells.Count; i++)
       {
           if (row.Cells[i].Text == previousRow.Cells[i].Text)
            {
                 row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 : previousRow.Cells[i].RowSpan + 1;
                 previousRow.Cells[i].Visible = false;
             }
         }
    }
}
 ///  合并GridView中某行相同信息的行(单元格)
 public static void GroupRow(GridView gridView, int rows)
{
    TableCell oldTc = gridView.Rows[rows].Cells[0];
    for (int i = 1; i < gridView.Rows[rows].Cells.Count; i++)
   { TableCell tc = gridView.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; }
       }
  }
合并单元格 合并一行中的几列
 public static void GroupRow(GridView gridView, int rows, int sCol, int eCol)
{
    TableCell oldTc = gridView.Rows[rows].Cells[sCol];
    for (int i = 1; i < eCol - sCol; i++)
   {
       TableCell tc = gridView.Rows[rows].Cells[i + sCol]; 
     //Cells[0]就是你要合并的列
     tc.Visible = false;
       if (oldTc.ColumnSpan == 0)
      { oldTc.ColumnSpan = 1; }
       oldTc.ColumnSpan++;
      oldTc.VerticalAlign = VerticalAlign.Middle;
      }
}
 合并单元格 合并某一列所有行
public static void GroupCol(GridView gridView, int cols)
{
      if (gridView.Rows.Count < 1 || cols > gridView.Rows[0].Cells.Count - 1)
      { return; }
     TableCell oldTc = gridView.Rows[0].Cells[cols];
      for (int i = 1; i < gridView.Rows.Count; i++)
      {
         TableCell tc = gridView.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; }
        }
}  合并单元格 合并某一列中的某些行
 public static void GroupCol(GridView gridView, int cols, int sRow, int eRow)
{
       if (gridView.Rows.Count < 1 || cols > gridView.Columns.Count - 1)
         { return; }
      TableCell oldTc = gridView.Rows[sRow].Cells[cols];
        for (int i = 1; i < eRow - sRow; i++)
      {
       TableCell tc = gridView.Rows[sRow + i].Cells[cols];
        tc.Visible = false;
          if (oldTc.RowSpan == 0)
        { oldTc.RowSpan = 1; }
         oldTc.RowSpan++;
         oldTc.VerticalAlign = VerticalAlign.Middle;
   }
}