当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > GridView单元格合并

ASP.NET
ReferenceEquals, == , Equals 比较
VB.NET窗口渐淡关闭
使用简单的DepthBuffer 和使用Lights
VB下使用adodb.command 执行存储过程注意
Sendkeys 和 Sendmessage 使用技巧一例
使用IndexBuffer(索引)
探讨C#中字符串的加密
常用加密算法
如何更新父窗体
当SESSION失效时自动转到其它页面
Sendkeys 和 Sendmessage 使用技巧一例 选择自 northwolves 的 Blog
1.DotNet(.Net):新平台,C#:新语言
Web下打印的实现
在.NET中实现彩色光标,动画光标和自定义光标[引自孟子前辈作品]
alert在asp.net中如何使用??
替换HTML代码
h2reg的一些使用经验
C#2.0 新特性探究(一) 模拟List和内置算法
在网页中添加Flash的播放或者背景音乐
Cookie 的写入与读取

ASP.NET 中的 GridView单元格合并


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 165 ::
收藏到网摘: n/a

合并单元格 合并某一行的所有列 #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