gridview合并单元格

由于项目要求,需要合并某些单元格,因此特意封装了如下帮助类:

  /// <summary>
/// 合并单元格
/// </summary>
public class MergeCellHelper
{
/// <summary>
/// 合并表头
/// </summary>
/// <param name="row">当前行</param>
/// <param name="startColumn">开始列</param>
/// <param name="endColumn">结束列</param>
public static void MergeHeader(GridViewRow row, int startColumn, int endColumn)
{
for (int i = startColumn; i <= endColumn; i++)
{
if (i != startColumn)
{
row.Cells[i].Visible = false;
continue;
}
row.Cells[startColumn].ColumnSpan = endColumn - startColumn + ;
}
} /// <summary>
/// 合并指定列的行
/// </summary>
/// <param name="gv">gridview</param>
/// <param name="columns">指定的列:可以多列</param>
public static void MergeRow(GridView gv, params int[] columns)
{
MergeRowByReferenceColumn(gv, , columns);
} /// <summary>
/// 合并指定列的行(参考列一定要合理,慎用)
/// </summary>
/// <param name="gv">gridview</param>
/// /// <param name="referenceColumn">参照列</param>
/// <param name="columns">指定的列:可以多列</param>
public static void MergeRowByReferenceColumn(GridView gv, int referenceColumn, params int[] columns)
{
for (int i = ; i < columns.Length; i++)
{
var currentColumn = columns[i];
int rowSpan = ;
for (int j = ; j < gv.Rows.Count; j++)
{
var currentRow = gv.Rows[j];
if (j < gv.Rows.Count - )
{
var nextRow = gv.Rows[j + ];
if (currentRow.Cells[referenceColumn].Text == nextRow.Cells[referenceColumn].Text)
{
if (currentRow.Cells[currentColumn].Text == nextRow.Cells[currentColumn].Text)
{
rowSpan = rowSpan < ? : rowSpan + ;
nextRow.Cells[currentColumn].Visible = false;
}
else
{
gv.Rows[j - rowSpan + ].Cells[currentColumn].RowSpan = rowSpan;
rowSpan = ;
}
}
else
{
gv.Rows[j - rowSpan + ].Cells[currentColumn].RowSpan = rowSpan;
rowSpan = ;
}
}
else
{
gv.Rows[j - rowSpan + ].Cells[currentColumn].RowSpan = rowSpan;
rowSpan = ;
}
}
}
} }

webform gridview合并单元格的更多相关文章

  1. gridview 合并单元格 并原样导出数据

    使用的方式都是比较简单的,asp.net 如何进行数据的导出有好多种方法,大家可以在网上找到, 一下提供一些合并并原样输出的一个简单的代码: public void ToExcel(System.We ...

  2. gridview合并单元格

    记录用,以前写过,忘记了转自:http://marss.co.ua/MergingCellsInGridView.aspx public class GridDecorator { public st ...

  3. DEV gridview 合并单元格

    private void gv_docargo_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e ...

  4. gridview 合并单元格后,选中颜色重新绘制

    gv_docargo.RowStyle += OnRowStyle; private void OnRowStyle(object sender, DevExpress.XtraGrid.Views. ...

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

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

  6. GridView中合并单元格

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

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

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

  8. Repeater多列分别合并单元格

    GridView.Repeater合并单元格可以参考http://www.cnblogs.com/zhmore/archive/2009/04/22/1440979.html,但是原文例子是合并一列的 ...

  9. .Net用字符串拼接实现表格数据相同时合并单元格

    前言 最近在做项目通过GridView或Repeater绑定数据,如果两行或若干行某列值相同,需要进行合并单元格,但是实现过程中想到了字符串拼接,于是就没用绑定数据控件,而是用了html结合字符串实现 ...

随机推荐

  1. 安装Oracle客户端寻找配置文件tnsnames.ora

    # tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admi ...

  2. 22-maven-安装与配置

    转载:https://blog.csdn.net/wy727764020/article/details/80595451 Maven的安装以及eclipse中配置maven 2018年06月06日 ...

  3. CentOS7下BIND配置主从服务器和缓存服务器

    系统环境:CentOS Linux release 7.4.1708 (Core)  3.10.0-693.el7.x86_64 软件版本:bind-chroot-9.9.4-51.el7_4.1.x ...

  4. linux下给php安装memcached及memcache扩展(转)

    http://kimi.it/257.html (另外的方法)linux安装memcached及memcache扩展一.安装libevent函数库下载地址:http://libevent.org默认被 ...

  5. 向Ubuntu的Dash中添加图标

    首先准备.xpm图标文件,如果程序文件夹中没有,那么可以根据自己喜好到网上下载喜欢的图标,不要太大,然后将其改为.xpm文件(直接改了后缀名就行).然后打开/usr/share/application ...

  6. 白盒静态自动化测试工具:PMD使用指南

    参考文献:http://www.oschina.net/p/pmd/http://www.cnblogs.com/flyme/archive/2011/09/09/2172548.htmlhttp:/ ...

  7. Jmeter将HTTP request报文体中的字符串转换为大写

    <awd><client id='${__javaScript("${IndividualID}".toUpperCase())}'><member ...

  8. 使用RSA进行信息加密解密的WebService示例

    使用RSA进行信息加密解密的WebService示例 按:以下文字涉及RSA对WebService传递的数据的加密解密,如果您已经熟知RSA或是有其它更好的方法请不要往下看以免浪费时间. WebSer ...

  9. PTA第一次作业和第二次作业

    PTA的第一次作业第一题: #include <stdio.h> int main (void) { int grade,i,N ,a=0,b=0,c=0,d=0,e=0; printf( ...

  10. 2018.07.17 牛奶模式Milk Patterns(二分+hash)

    传送门 一道简单的字符串.这里收集了几种经典做法: SAM,不想写. 后缀数组+二分,不想写 后缀数组+单调队列,不想写 hash+二分,for循哈希,天下无敌!于是妥妥的hash 代码如下: #in ...