using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI.WebControls;
/// <summary>
///GridViewMergeCell 合并GridView liyang 20090916
/// </summary>
public class GridViewMergeCell
{public GridViewMergeCell(){////TODO: 在此处添加构造函数逻辑//
    }#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;}}}}///  <summary> ///  合并GridView中某行相同信息的行(单元格)///  </summary> ///  <param  name="GridView1">GridView对象</param> ///  <param  name="cellNum">需要合并的行</param>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;}}}#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 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;}}#endregion#region 合并单元格 合并某一列所有行/// <summary>/// 合并GridView中某列相同信息的行(单元格)/// </summary>/// <param name="GridView1"></param>/// <param name="cellNum"></param>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;}}}#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 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;}}#endregion
}

转自 http://blog.csdn.net/xinshi9608/article/details/5642382

转载于:https://www.cnblogs.com/xiangzhong/archive/2012/08/24/2653619.html

GridView中合并单元格相关推荐

  1. Excel 中合并单元格的快捷键(ALT+H+M+M)

    要在 excel 中合并单元格,首先选择要合并到一个单元格中的单元格,然后可以使用从ALT开始的快捷键,然后同时按H+M+M. 一旦我们使用快捷键执行该函数,它将弹出一条警告消息"合并单元格 ...

  2. 在合并单元格中数组公式无效_Excel中合并单元格困扰多年的难题,终于被我搞定了...

    Excel表格中如果存在合并单元格,经常会遇到一些问题,比如序号填充.数据统计或筛选等,如下图所示,需要根据指定人员姓名查找引用对应的销售部门和销售金额. 这个问题关键在于销售部门列存在合并单元格,如 ...

  3. GridView跨行合并单元格

    /// <summary> ///GridViewCellCombine 的摘要说明 /// </summary> public class GridViewCellCombi ...

  4. Windows Forms DataGridView 中合并单元格

    Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.D ...

  5. markdown表格在github/gitee中合并单元格

    markdown表格合并单元格只能是在.md文件中使用html   代码 github/gitee中的显示效果 横向合并 <table>   <tr>     <td&g ...

  6. 在DataGrid中合并单元格行

    最近在做项目的时候经常遇到要合并单元格的情况,发现这个东西.net中并没有现成的方法,研究了一下,总结了两种方法. 这个主要都是行合并的,有以下两种情况 1.多行合并为一行,其中将某个或某几个单元格的 ...

  7. DataGridView 中合并单元格

    Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.D ...

  8. 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行

    1.常用表格标签 普通    <table>           |           <tr>          |           |          <th ...

  9. html统计表合并单元格的快捷键,excel中合并单元格的快捷键的方法及设置技巧

    快捷键的熟练使用可以帮助我们在工作中提高效率,接下来为您讲解合并单元格的快捷键设置方法的图文演示 合并单元格在excel默认的情况下是没有快捷键的. 需要用以下方法设置 1.打开excel,选择工具- ...

最新文章

  1. mysql innodb_data_file_path_关于innodb_data_file_path设置
  2. TableView的重要性
  3. RP2836 OUT0-OUT7 对应关系
  4. percona-Toolkit
  5. asterisk-通道变量列表
  6. antd vue 树更新数据后不展开_很全面的vue面试题总结
  7. 大佬终于把鸿蒙OS讲明白了,收藏了!
  8. thinkphp mysql 中文_耗时5天解决thinkphp连接mysql中文乱码的问题
  9. LGBM分类模型预测
  10. zoj 1676Network Wars(胡博涛论文题,01分数规划+最小割)
  11. 解三对角线性方程组的追赶法
  12. mac 安装使用Liteide
  13. 【Fiddler抓包】Fiddler基础用法-基于Fiddler5中文汉化版
  14. WBS——工作分解结构
  15. 高中生计算机考试软件手机版,信考中学信息技术考试练习系统内蒙古高中版
  16. 烧结钕铁硼的居里温度与工作温度
  17. CAD坐标系(UCS)
  18. 致即将逝去的2020
  19. LTE信令流程——位置更新
  20. 巡检过程中有哪些注意事项?智能巡检了解一下

热门文章

  1. Nagios3完整配置文档
  2. 网站白痴的 ASP.NET website 学习日志
  3. 安卓安装包不能覆盖原安装包_LOL手游全网最简单注册,安装教程,安卓 IOS皆可登录!攻略群有游戏安装包!...
  4. Hive分桶(bucket)
  5. python安装dlib要cmake,如何使用cmake解决dlib错误?
  6. (68)信号发生器DDS协议(第14天)
  7. php7 curl开源库,7个适用于PHP的最佳Curl包装器库
  8. 浏览器 调用 vue 组件_父子组件的通信
  9. nvme驱动_用户态NVMe运维利器 SPDK NVMe 字符设备
  10. 嵌入式 U 盘自动挂载