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

ASP.NET
Internet Explorer 编程简述(二)在IE中编辑OLE嵌入文档
移动窗体
.NET 2.0获取数据库连接统计数据
VB.NET 拖动无边框的窗体
利用WH_CBT Hook将非模态对话框显示为模态对话框
Aspect#应用 - 权限验证
VB 从零开始编外挂(一)
【错误解决】Unable to find script library 'WebUIValidation.js'
VB 从零开始编外挂(四)
DTD指南(3)-DTD-Elements(元素)
知识库文章MDL9745154-File:Microsoft Visual Basic 运行时库
.net手机软件开发(六)OBEX应用:文件传输部分
在winform中使用WebBrowser控件时怎样去除IE的滚动条
WINZIP及WINRAR命令!!!!!
智能客户端相关Application Block结构功能分析(二)
如何在VB中操作EXCEL(一段代码,两个可以使用的过程)
在C#中用最简洁有效的代码执行存储过程并返回数据
.Net的Collection类的一些使用说明
ASP.NET实现数据图表c
用asp.net画饼图

ASP.NET 中的 GridView单元格合并


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