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

ASP.NET
用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法
关于前台调用后台事件__doPostBack函数
Bin 和 App_Code 文件夹介绍
.NET 2.0 的压缩功能代码
解决Visual Studio 2005 无法显示设计视图的方法
asp.net(c#)两种随机数的算法,可用抽考题
asp.net下url传递中文的解决方案
XmlReader 读取器读取内存流 MemoryStream 的注意事项
asp.net下创建、查询、修改带名称空间的 XML 文件的例子
使用.NET存储XML数据的方法
XslTransform.Transform将结果输出到字符串里的方法
安装 VS2005 SP1 有关问题的解决办法
asp.net下中文验证码,免费开源代码
自定义应用程序配置文件(app.config)
asp.net下使用DIME协议上传文件
动态改变ASP.net页面标题和动态指定页面样式表的方法
WEB上调用HttpWebRequest奇怪问题的解决方法
HTTP协议下用Web Service上传大文件的解决方案
asp.net下Response.ContentType类型汇总
ASP.NET User Control使用技巧一则

ASP.NET 中的 GridView单元格合并


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 65 ::
收藏到网摘: 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