webform gridview合并单元格
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合并单元格的更多相关文章
- gridview 合并单元格 并原样导出数据
使用的方式都是比较简单的,asp.net 如何进行数据的导出有好多种方法,大家可以在网上找到, 一下提供一些合并并原样输出的一个简单的代码: public void ToExcel(System.We ...
- gridview合并单元格
记录用,以前写过,忘记了转自:http://marss.co.ua/MergingCellsInGridView.aspx public class GridDecorator { public st ...
- DEV gridview 合并单元格
private void gv_docargo_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e ...
- gridview 合并单元格后,选中颜色重新绘制
gv_docargo.RowStyle += OnRowStyle; private void OnRowStyle(object sender, DevExpress.XtraGrid.Views. ...
- GRIDVIEW多行多列合并单元格(合并列)
GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子) ...
- GridView中合并单元格
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...
- GridView相同内容合并单元格
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web; ...
- Repeater多列分别合并单元格
GridView.Repeater合并单元格可以参考http://www.cnblogs.com/zhmore/archive/2009/04/22/1440979.html,但是原文例子是合并一列的 ...
- .Net用字符串拼接实现表格数据相同时合并单元格
前言 最近在做项目通过GridView或Repeater绑定数据,如果两行或若干行某列值相同,需要进行合并单元格,但是实现过程中想到了字符串拼接,于是就没用绑定数据控件,而是用了html结合字符串实现 ...
随机推荐
- 7-将本地的javaweb项目部署到Linux服务器的一般操作
一.基本流程介绍: 1.安装tomcat;2.安装mysql;3.将本地的javaweb导出成.war文件,传到服务器的tomcat/webapps/下面4.将数据库文件导出成.sql文件,传到服务器 ...
- 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是 ...
- dbus通信与接口介绍
DBUS是一种高级的进程间通信机制.DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信 ...
- lib文件反汇编
运行vc命令行,输入:dumpbin /disasm xxx.lib > test.txt lib就是obj文件打包起来的,可以用lib.exe解出来,下面是vc环境下的操作,其他环境,看命令行 ...
- [Jenkins] 在Jenkins执行单个test suite
cd %WORKSPACE%cmd /c call "%READYAPI_PRO_190%\bin\testrunner.bat" -a -j -s"%TestSuite ...
- [BAT]批处理脚本双击可运行,但在定时计划任务中无法执行(当前工作路径不对导致的)
一开始,红色部分我是用set AutoPath=%cd%,双击可执行,但是将这个批处理脚本放在定时任务中无法执行,后来发现在定时执行的时候,当前工作路径不是批处理脚本所在的路径,而是C:/Window ...
- java--多线程编程简介
1.什么时候使用多线程编程 一个任务在正常情况下是按顺序执行的,但是如果当前任务里有多个相似进程块(例如for,while语句),我们就可以考虑把这些代码块抽出来并行运行,无需阻塞 2.实现多线程的几 ...
- 2018.09.29 bzoj3885: Cow Rectangles(悬线法+二分)
传送门 对于第一个问题,直接用悬线法求出最大的子矩阵面积,然后对于每一个能得到最大面积的矩阵,我们用二分法去掉四周的空白部分来更新第二个答案. 代码: #include<bits/stdc++. ...
- 2018.09.14 洛谷P3567 [POI2014]KUR-Couriers(主席树)
传送门 简单主席树啊. 但听说有随机算法可以秒掉%%%(本蒟蒻并不会) 直接维护值域内所有数的出现次数之和. 当这个值不大于区间总长度的一半时显然不存在合法的数. 这样在主席树上二分查值就行了. 代码 ...
- ardunio 实现RS485通讯-下位机
#include <SoftwareSerial.h> SoftwareSerial mySerial(,); byte ZERO=0x00; byte Addr=0x03; byte S ...