GridView合并多行多列
2016-05-12 22:59
309 查看
http://www.cnblogs.com/nianming/archive/2013/08/19/3268981.html
1: /// <summary>
http://www.cnblogs.com/nianming/archive/2013/08/19/3268981.html
1: /// <summary>
2: /// 和并列
3: /// </summary>
4: /// <param name="gv">要合并的GridView</param>
5: /// <param name="startCol">开始列的索引</param>
6: /// <param name="endCol">结束列的索引</param>
7: /// <param name="containHeader">是否合并表头,默认不合并</param>
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: /// <summary>
21: /// 遍历GridViewRow中的单元格
22: /// </summary>
23: /// <param name="row">要遍历的行</param>
24: /// <param name="start">开始索引</param>
25: /// <param name="end">结束索引</param>
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: }
作者:田念明 出处:http://www.cnblogs.com/nianming/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- POJ 1236 Network of Schools 有向图强连通分量
- SDWebImage与UIScrollView或UICollectionView一起使用多次收到“Received memory warning.”,最终程序闪退的原因分析和解决办法。
- oracle数据库使用游标实现大写数字转换成小写数字
- 编程教程合集
- 优化SQL Server数据库的50种方法
- Material Design介绍
- webService(原理,调用,发布,调用)
- js实现树形菜单
- ubuntu设置vim语法高亮显示和自动缩进
- iOS基础开发-懒加载
- Android 引入aar相关问题
- Json序列化和反序列化(Newtonsoft)& 嵌套反序列化
- Debug CLR and mscorlib
- Css3选择器(一)
- forward(request,reponse)与sendRedirect
- mongodb 集群基础知识
- 常用的服务的默认端口号
- 百度地图离线开发包
- 实验八 SQLite数据库操作
- 常量字符串为什么位于静态存储区?