1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Data;
  6. using System.Web.UI.WebControls;
  7. /// <summary>
  8. ///GridViewMergeCell 合并GridView liyang 20090916
  9. /// </summary>
  10. public class GridViewMergeCell
  11. {
  12. public GridViewMergeCell()
  13. {
  14. //
  15. //TODO: 在此处添加构造函数逻辑
  16. //
  17. }
  18. #region 合并单元格 合并某一行的所有列
  19. public static void GroupRow(GridView gridView)
  20. {
  21. for (int rowIndex = gridView.Rows.Count - ; rowIndex >= ; rowIndex--)
  22. {
  23. GridViewRow row = gridView.Rows[rowIndex];
  24. GridViewRow previousRow = gridView.Rows[rowIndex + ];
  25. for (int i = ; i < row.Cells.Count; i++)
  26. {
  27. if (row.Cells[i].Text == previousRow.Cells[i].Text)
  28. {
  29. row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < ? :
  30. previousRow.Cells[i].RowSpan + ;
  31. previousRow.Cells[i].Visible = false;
  32. }
  33. }
  34. }
  35. }
  36. ///  <summary> 
  37. ///  合并GridView中某行相同信息的行(单元格)
  38. ///  </summary> 
  39. ///  <param  name="GridView1">GridView对象</param> 
  40. ///  <param  name="cellNum">需要合并的行</param>
  41. public static void GroupRow(GridView gridView, int rows)
  42. {
  43. TableCell oldTc = gridView.Rows[rows].Cells[];
  44. for (int i = ; i < gridView.Rows[rows].Cells.Count; i++)
  45. {
  46. TableCell tc = gridView.Rows[rows].Cells[i];  //Cells[0]就是你要合并的列
  47. if (oldTc.Text == tc.Text)
  48. {
  49. tc.Visible = false;
  50. if (oldTc.ColumnSpan == )
  51. {
  52. oldTc.ColumnSpan = ;
  53. }
  54. oldTc.ColumnSpan++;
  55. oldTc.VerticalAlign = VerticalAlign.Middle;
  56. }
  57. else
  58. {
  59. oldTc = tc;
  60. }
  61. }
  62. }
  63. #endregion
  64. #region 合并单元格 合并一行中的几列
  65. /// <summary>
  66. /// 合并单元格 合并一行中的几列
  67. /// </summary>
  68. /// <param name="GridView1">GridView ID</param>
  69. /// <param name="rows">行</param>
  70. /// <param name="sCol">开始列</param>
  71. /// <param name="eCol">结束列</param>
  72. public static void GroupRow(GridView gridView, int rows, int sCol, int eCol)
  73. {
  74. TableCell oldTc = gridView.Rows[rows].Cells[sCol];
  75. for (int i = ; i < eCol - sCol; i++)
  76. {
  77. TableCell tc = gridView.Rows[rows].Cells[i + sCol];  //Cells[0]就是你要合并的列
  78. tc.Visible = false;
  79. if (oldTc.ColumnSpan == )
  80. {
  81. oldTc.ColumnSpan = ;
  82. }
  83. oldTc.ColumnSpan++;
  84. oldTc.VerticalAlign = VerticalAlign.Middle;
  85. }
  86. }
  87. #endregion
  88. #region 合并单元格 合并某一列所有行
  89. /// <summary>
  90. /// 合并GridView中某列相同信息的行(单元格)
  91. /// </summary>
  92. /// <param name="GridView1"></param>
  93. /// <param name="cellNum"></param>
  94. public static void GroupCol(GridView gridView, int cols)
  95. {
  96. if (gridView.Rows.Count < || cols > gridView.Rows[].Cells.Count - )
  97. {
  98. return;
  99. }
  100. TableCell oldTc = gridView.Rows[].Cells[cols];
  101. for (int i = ; i < gridView.Rows.Count; i++)
  102. {
  103. TableCell tc = gridView.Rows[i].Cells[cols];
  104. if (oldTc.Text == tc.Text)
  105. {
  106. tc.Visible = false;
  107. if (oldTc.RowSpan == )
  108. {
  109. oldTc.RowSpan = ;
  110. }
  111. oldTc.RowSpan++;
  112. oldTc.VerticalAlign = VerticalAlign.Middle;
  113. }
  114. else
  115. {
  116. oldTc = tc;
  117. }
  118. }
  119. }
  120. #endregion
  121. #region 合并单元格 合并某一列中的某些行
  122. /// <summary>
  123. /// 合并单元格 合并某一列中的某些行
  124. /// </summary>
  125. /// <param name="GridView1">GridView ID</param>
  126. /// <param name="cellNum">列</param>
  127. /// <param name="sRow">开始行</param>
  128. /// <param name="eRow">结束列</param>
  129. public static void GroupCol(GridView gridView, int cols, int sRow, int eRow)
  130. {
  131. if (gridView.Rows.Count < || cols > gridView.Columns.Count - )
  132. {
  133. return;
  134. }
  135. TableCell oldTc = gridView.Rows[sRow].Cells[cols];
  136. for (int i = ; i < eRow - sRow; i++)
  137. {
  138. TableCell tc = gridView.Rows[sRow + i].Cells[cols];
  139. tc.Visible = false;
  140. if (oldTc.RowSpan == )
  141. {
  142. oldTc.RowSpan = ;
  143. }
  144. oldTc.RowSpan++;
  145. oldTc.VerticalAlign = VerticalAlign.Middle;
  146. }
  147. }
  148. #endregion
  149. }
  150.  
  151. 转自 http://blog.csdn.net/xinshi9608/article/details/5642382

GridView中合并单元格的更多相关文章

  1. Windows Forms DataGridView中合并单元格

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

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

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

  3. C# DataGridView中合并单元格

    /// 合并GridView列中相同的行 /// /// GridView对象 /// 需要合并的列 public static void GroupRows(GridView GridView1, ...

  4. tkinter的grid布局中合并单元格

    rowspan  合并多行,比如:Label(root,text="table",width=10,height=2,),grid(row=0,column=0,rowspan=2 ...

  5. GridView相同内容合并单元格

    using System;using System.Data;using System.Configuration;using System.Collections;using System.Web; ...

  6. poi获取合并单元格内的第一行第一列的值

    当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...

  7. 雷林鹏分享:jQuery EasyUI 数据网格 - 合并单元格

    jQuery EasyUI 数据网格 - 合并单元格 数据网格(datagrid)经常需要合并一些单元格.本教程将向您展示如何在数据网格(datagrid)中合并单元格. 为了合并数据网格(datag ...

  8. GRIDVIEW多行多列合并单元格(合并列)

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章:  GridView多行多列合并单元格(完整代码和例子) ...

  9. C# 获取Excel中的合并单元格

    C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...

随机推荐

  1. js 的eval()方法 计算某个字符串,并执行其中的的 JavaScript 代码;

    定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 Java ...

  2. Zabbix 源码编译安装

    简介: Zabbix 分布式监控系统,源码编译安装记录 ( 记不得是第多少次了 ) 下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX ...

  3. Windows安装Mysql5.7.22

    1.下载Mysql,5.7版本,将zip包解压到某个安装目录下面,最好不要放C盘,选择一个容量大的磁盘.下载地址:https://dev.mysql.com/downloads/mysql/ 2.进入 ...

  4. nextcloud 安装

    nextcloud 优化 设置php.ini vim /etc/php/7.0/apache2/php.ini 添加以下代码: opcache.enable= opcache.enable_cli= ...

  5. System.Web.Mvc.Html 命名空间小计

    1,Html.Action    使用指定参数调用指定子操作方法并以 HTML 字符串形式返回结果. 1 <div id="HtmlAction"> 2 3 @Html ...

  6. SQLSERVER 建立全文检索

    --  创建测试表 --  DROP TABLE FullTextIndexing CREATE TABLE FullTextIndexing ( ID INT IDENTITY(1,1) NOT N ...

  7. 配置atom需要安装的插件

    本人是一个node后端开发,这里之记录我需要的atom插件,如果需要别的请去别处查找,也省这我自己再去找 1.atom-beautify     代码格式一键美化 2.minimap  代码小地图 3 ...

  8. sudo问题汇总

    1. 注释Defaults requiretty Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端. 否则会出现sudo: sorry, y ...

  9. Zookeeper使用--Java API

    1  创建节点 创建节点有异步和同步两种方式.无论是异步或者同步,Zookeeper都不支持递归调用,即无法在父节点不存在的情况下创建一个子节点,如在/zk-ephemeral节点不存在的情况下创建/ ...

  10. c/c++笔试面试试题

    C 试题(纯属转载) 1.求下面函数的返回值(微软) int func(x) {     int countx = 0;     while(x)     {           countx ++; ...