//   <summary> 
    ///   合并GridView列中相同的行 
    ///   </summary> 
    ///   <param   name="GridView1">GridView对象</param> 
    ///   <param   name="cellNum">需要合并的列</param> 
    public static void GroupRows(GridView GridView1, int cellNum)
    {
        int i = 0, rowSpanNum = 1;
        while (i < GridView1.Rows.Count - 1)
        {
            GridViewRow gvr = GridView1.Rows[i];
            for (++i; i < GridView1.Rows.Count; i++)
            {
                GridViewRow gvrNext = GridView1.Rows[i];
                if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
                {
                    gvrNext.Cells[cellNum].Visible = false;
                    rowSpanNum++;
                }
                else
                {
                    gvr.Cells[cellNum].RowSpan = rowSpanNum;
                    rowSpanNum = 1;
                    break;
                }

if (i == GridView1.Rows.Count - 1)
                {
                    gvr.Cells[cellNum].RowSpan = rowSpanNum;
                }
            }
        }
    }

///   <summary> 
    ///   根据条件列合并GridView列中相同的行 
    ///   </summary> 
    ///   <param   name="GridView1">GridView对象</param> 
    ///   <param   name="cellNum">需要合并的列</param>
    ///   ///   <param   name="cellNum2">条件列(根据某条件列还合并)</param>
    public static void GroupRows(GridView GridView1, int cellNum, int cellNum2)
    {
        int i = 0, rowSpanNum = 1;
        while (i < GridView1.Rows.Count - 1)
        {
            GridViewRow gvr = GridView1.Rows[i];
            for (++i; i < GridView1.Rows.Count; i++)
            {
                GridViewRow gvrNext = GridView1.Rows[i];
                if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)
                {
                    gvrNext.Cells[cellNum].Visible = false;
                    rowSpanNum++;
                }
                else
                {
                    gvr.Cells[cellNum].RowSpan = rowSpanNum;
                    rowSpanNum = 1;
                    break;
                }

if (i == GridView1.Rows.Count - 1)
                {
                    gvr.Cells[cellNum].RowSpan = rowSpanNum;
                }
            }
        }
    }

第二个方法只是在第一个方法的修改了一点点, 在判断单元格的时候,加上了一个条件列:

if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)。当然,第二个方法还可以扩展,根据多个列的条件来合并。

http://www.cnblogs.com/xjb/archive/2007/12/18/1004203.html

转载于:https://www.cnblogs.com/chen110xi/archive/2012/05/30/2526762.html

在GRIDVIEW中合并单元格相关推荐

  1. GridView中合并单元格

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...

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

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

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

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

  4. GridView跨行合并单元格

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

  5. Windows Forms DataGridView 中合并单元格

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

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

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

  7. 在DataGrid中合并单元格行

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

  8. DataGridView 中合并单元格

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

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

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

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

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

最新文章

  1. python手机端下载-Python3,x:如何进行手机APP的数据爬取
  2. python函数-函数进阶
  3. quartz 表达式解析 详解
  4. post的4个参数和ajaxReturn方法
  5. 蓝桥杯 算法训练 结点选择
  6. Objective-C中的属性机制
  7. 社会我张哥,人狠话不多。
  8. eclipse如何设置断点断点处运行快捷键
  9. 模拟汽车速度控制系统的设计 微机原理课程设计
  10. java 继承是什么_java中继承指的是什么
  11. html复习第四课(2_34_0924_html)
  12. python语言读后感_《利用Python进行数据分析》读书笔记
  13. 微精:推荐+订阅=个性化智能体验
  14. 抖音小店另类起店方法
  15. idea智能提示设置和修改提示快捷键
  16. MeepoPS基本使用方法
  17. LPA-Star算法
  18. 高数值孔径(NA=0.68)聚焦透镜焦点区域激光光束的模拟
  19. 渠道广告联盟SDK接入思路总结
  20. flink you can disable this check with the configuration ‘classloader.check-leaked-classloader‘

热门文章

  1. Mat 创建图像的理解
  2. openwrt源码下载
  3. java数据读取容量,spring batch使用reader读数据的内存容量问题详解
  4. php逻辑分析,PHP – 字符串逻辑分析 – “X和Y或Z”
  5. 零基础学启发式算法(3)-禁忌搜索 (Tabu Search)
  6. C++ for const 是什么意思
  7. 英语 没有听懂对方说什么 怎么说
  8. C++ set 排序 修改元素之后不会改变原来的排序
  9. 微信小程序云开发教程-JavaScript入门(1)-学习环境、函数、调试
  10. 关于序列化的几个注意点