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

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

GitHub项目地址:

上周写了一篇,实现的方法有很多不足之处,比如只能合并连续的列,不支持模板列。在今天的文章里,首先来解决第一个不足。

解决这个问题的思路并不难,现有的代码已经解决了连续列的合并,合并指定的列只需将要合并的列按照顺序传递给合并的方法,就OK了!下面我给出合并指定列的代码:

1:  /// 
2:  /// 合并GridView单元格
3:  /// 
4:  /// 要合并的GridView
5:  /// 指定的列,要按照顺序传入
6:  public static void MergeRow(GridView gv, params int[] cols)
7:  {
8:      RowArg init = new RowArg()
9:      {
10:          StartRowIndex = 0,
11:          EndRowIndex = gv.Rows.Count - 2
12:      };
13:      for (int i = 0; i < cols.Length; i++)
14:      {
15:          if (i > 0)
16:          {
17:              List
list = new List
();
18:              //从第二列开始就要遍历前一列
19:              TraversesPrevCol(gv, cols[i - 1], list);
20:              foreach (var item in list)
21:              {
22:                  MergeRow(gv, cols[i], item.StartRowIndex, item.EndRowIndex);
23:              }
24:          }
25:          //合并开始列的行
26:          else
27:          {
28:              MergeRow(gv, i, init.StartRowIndex, init.EndRowIndex);
29:          }
30:      }
31:  }

上一篇文章最后,我写了一个简单的例子,在这个例子中,如下图(左边)所示,合并了前四列,第一列是张三,第二列是张三的工资项:应发工资和五险一金,第三列分别是应发工资的子项:基本工资、奖金和加班,五险一金的子项:医疗保险和住房公积金。第四列基本工资:1月,奖金:1月,加班:1月… 正常来说,第四列都是1月的,应该都合并成一块。使用连续列合并的方法完成这个问题,可以将列的顺序进行调整,但是现在要求不能调整列的顺序,那么就只能按照指定列合并了。

完成上图中间的合并格式,只需在GridView绑定了数据之后,调用本文开始的方法,传入列的顺序0,1,3,2,完成右边图的合并格式,只需传入列的顺序0,3,1,2。

1:  //左边图
2:  MergeGridViewCell.MergeRow(Gridview1, 0, 3);
3:  //中间图
4:  MergeGridViewCell.MergeRow(Gridview1, 0, 1, 3, 2);
5:  //右边图
6:  MergeGridViewCell.MergeRow(Gridview1, 0, 3, 1, 2);

最后说明一下,本篇文章是在上一篇文章的基础上完成的,如果对此感兴趣的,可以先阅读。

GitHub项目地址:

转载于:https://www.cnblogs.com/nianming/archive/2012/10/19/2731694.html

你可能感兴趣的文章
基于域名虚拟主机及主站迁移
查看>>
linux sed
查看>>
高可用高性能负载均衡软件HAproxy详解指南-第一章(简介、安装)
查看>>
超级碗另一面:大逆转背后,你没看到的人工智能大PK
查看>>
IntelliJ Idea 常用快捷键列表
查看>>
SQL Server 2005系列教学(3) 创建数据表
查看>>
我的书也开始赚美金
查看>>
Windows Azure Storage (9) Windows Azure 上的托管服务CDN (中) Blob Service
查看>>
Redis 中的事务
查看>>
用 Subversion 构建版本控制环境
查看>>
js24---工厂模式2
查看>>
pa/patch/115/sql 下的pls文件在EBS启动的时候会去更新数据库中的pkg ?
查看>>
Windows Mobile, Windows Embedded CE工程师的海外找工经验
查看>>
MonoRail学习笔记七:页面交互的输入输出方式总结
查看>>
项目利益相关者
查看>>
android window.requestWindowFeature()常用方法
查看>>
【Javascript Demo】移动端访问PC端网页时跳转到对应的移动端网页
查看>>
走在网页游戏开发的路上(四)
查看>>
Linux内核【链表】整理笔记(2) 【转】
查看>>
android152 笔记 4
查看>>