博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GRIDVIEW多行多列合并单元格(合并列)
阅读量:7212 次
发布时间:2019-06-29

本文共 1866 字,大约阅读时间需要 6 分钟。

GitHub项目地址:

去年的时候,我写了两篇文章:  和 。今天继续再添加一些功能,首先看下图:

左边是原始数据的显示,右边是应用合并列之后的效果。

从图中可以看到,二级指标有两列,有的行中两列的内容一样,有的则不一样,如果实现如右图所示,看起来效果会更好一些。下面就着手实现这个功能,我的实现原理很简单,就是遍历GridView的行和遍历行中的单元格,如果单元格的前一列和当前列的内容相同就合并这两列。下面是具体实现的代码,上面有注释,应该很容易理解。

1:          /// 
2:          /// 和并列
3:          /// 
4:          /// 要合并的GridView
5:          /// 开始列的索引
6:          /// 结束列的索引
7:          /// 是否合并表头,默认不合并
8:          public static void MergeColumn(GridView gv, int startCol, int endCol, bool containHeader = false)
9:          {
10:              if (containHeader)
11:              {
12:                  BLRowCells(gv.HeaderRow, startCol, endCol);
13:              }
14:              foreach (GridViewRow row in gv.Rows)
15:              {
16:                  BLRowCells(row, startCol, endCol);
17:              }
18:          }
19:   
20:          /// 
21:          /// 遍历GridViewRow中的单元格
22:          /// 
23:          /// 要遍历的行
24:          /// 开始索引
25:          /// 结束索引
26:          private static void BLRowCells(GridViewRow row, int start, int end)
27:          {
28:              //从开始索引的下一列开始
29:              for (int i = start + 1; i <= end; i++)
30:              {
31:                  //当前单元格
32:                  TableCell currCell = row.Cells[i];
33:                  //前一个单元格
34:                  TableCell prevCell = row.Cells[i - 1];
35:                  if (!string.IsNullOrEmpty(currCell.Text) && !string.IsNullOrEmpty(prevCell.Text))
36:                  {
37:                      if (currCell.Text == prevCell.Text)
38:                      {
39:                          currCell.ColumnSpan = prevCell.ColumnSpan < 1 ? 2 : prevCell.ColumnSpan + 1;
40:                          prevCell.Visible = false;
41:                      }
42:                  }
43:              }
44:          }

本篇文章作为前两篇文章的续文,内容相对来说简单一些,不过有需要合并GridView单元格的朋友,希望这三篇文章能够起到帮助作用!

GitHub项目地址:

转载地址:http://igeum.baihongyu.com/

你可能感兴趣的文章
ARP攻击实战
查看>>
PowerDNS管理工具开发中学习到的DNS知识
查看>>
命令行出错Exception in thread "main" java.lang.UnsupportedClassVersionError:
查看>>
Vbs压缩备份文件夹以日期命名
查看>>
Myeclipse启动Tomcat服务器Address already in use: JVM_Bind
查看>>
svn服务器安装与配置
查看>>
deprecated conversion from string constant to ‘char*’
查看>>
SSH实战项目——在线商品拍卖网
查看>>
The Distribution File System
查看>>
Jvm原理剖析与调优之内存结构
查看>>
TortoiseSVN文件夹及文件图标不显示解决方法
查看>>
技术的价值--从实验到企业实施的关键性思想
查看>>
在VMWare中配置SQLServer2005集群 Step by Step(四)——集群安装
查看>>
实战:通过组策略为用户部署软件
查看>>
Fedora 17 安装视频
查看>>
基于zeromq的高性能分布式RPC框架Zerorpc 性能测试
查看>>
IL系列文章之二:Make Best Use of Our Tools
查看>>
Apache Ant使用过程的总结
查看>>
ES 相似度算法设置(续)
查看>>
oc73--NSArray使用
查看>>