gridview合并相同的行
#region 方法:合并Gridview行
/// <summary>
/// 合并GridView指定行单元格
/// </summary>
/// <param name="gv">GridView</param>
/// <param name="DataKeysName">DataKeys值(以此值为参照,如果此值相同,则将指定的单元格纵向合并)</param>
/// <param name="rowIndex">要合并的列索引(从0开始)</param>
protected void AppendGVRow(string DataKeysName, GridView gv, params int[] rowIndex)
{
try
{
int spanCount = 1;//合并的单元格跨的行数
int spanNum = -1;//用于确定需合并的起始行
for (int i = 0; i < rowIndex.Length; i++)
{
for (int j = 0; j < gv.Rows.Count - 1; j++)
{
if (gv.DataKeys[j][DataKeysName].ToString().Trim() == gv.DataKeys[j + 1][DataKeysName].ToString().Trim())//如果两行的text相同,则合并
{
if (spanNum == -1)
{
spanNum = j;//将需要合并的起始行保存到spanNum中
}
spanCount++;//合并的单元格跨的行数自增1
gv.Rows[j + 1].Cells[rowIndex[i]].Visible = false;//将下一行隐藏
gv.Rows[spanNum].Cells[rowIndex[i]].RowSpan = spanCount;
}
else
{
spanNum = -1;
spanCount = 1;
}
}
spanNum = -1;
spanCount = 1;
}
}
catch { }
}
#endregion
gridview合并相同的行的更多相关文章
- webform gridview合并单元格
gridview合并单元格 由于项目要求,需要合并某些单元格,因此特意封装了如下帮助类: /// <summary> /// 合并单元格 /// </summary> publ ...
- GridView合并表头多重表头
后台代码: using System; using System.Data; using System.Configuration; using System.Web; using System.We ...
- Android之GridView控制显示多少行以及遇到的怪事
前段时间接到一个需求,要求GridView超过两行只显示两行多余的不显示.但是GridView没有设置多少行的api,只有设置多少列的方法,到处查找资料都类似的case,stakeoverfrow上面 ...
- 使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)
原文: http://njm.iteye.com/blog/795881 --使用 自连接.for xml path('')和stuff合并显示多行数据到一行中 --注 --1.计算列可以不用包含在聚 ...
- [转载]GridView中点击某行的任意位置就选中该行
原文链接:http://www.cnblogs.com/Echo529/p/4521701.html GridView中点击某行的任意位置就选中该行 分类: 第一步:添加选择列 点击GridView右 ...
- GridView中点击某行的任意位置就选中该行
GridView中点击某行的任意位置就选中该行 -- :: 分类: 第一步:添加选择列 点击GridView右边小尖头,双击CommandField,选中"选择",添加,将起设置为不可见: 第二步:处 ...
- [C#]合并单元格(行、列)
详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak説明:控件ID指的是页面上面的Grid ...
- 动态横向(水平)合并Repeater数据行DataItem的列
Insus.NET有对GridView控件进行横纵分别合并列:横:<动态横向(水平)合并GridView数据行DataRow的列>http://www.cnblogs.com/insus/ ...
- devpress 的gridview 控件的行拖拽 z
首先,添加引用:using DevExpress.XtraGrid.Views.Grid.ViewInfo; gridControl1.AllowDrop = true; ...
随机推荐
- java常量池理解
String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang" ...
- rem布局
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- (转)IOS笔记 #pragma mark的用法
简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick{ ...
- The MySQL C API 编程实例
在网上找了一些MYSQL C API编程的文章,看了后认为还是写的不够充分,依据自己经验写了这篇<The MySQL C API 编程实例>,希望对须要调用到MYSQL的C的API的朋友有 ...
- PHP语言基础06 MySql By ACReaper
上篇介绍了如用PHP连接上MySql进行,并进行sql语句的执行.但是我们没有介绍,如何输出处理的结果,如何获得处理的结果. 这里要先说明Mysql有两种查询处理模式,一种是有缓冲的查询处理模式,一种 ...
- html系列教程--center dl dt dd div
<center> 标签:对其所包括的文本进行水平居中. <datalist> 标签:定义列表,与 input 元素配合使用该元素,来定义 input 可能的值 demo: &l ...
- Block使用要点
Block简介 Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的: 一个包含Block执行时需要的所有外部变量值的数据结构. Block将使用到的.作用域附近到的变量 ...
- TCP/IP详解之:Ping程序、Traceroute程序
Ping程序: ping程序是通过发送一份ICMP回显请求报文(即ICMP报文的一种,其类型为8,代码为0)给主机,并等待返回ICMP回显应答 来测试另一台主机是否可达. ping程序不用经过传输层, ...
- return break continue 的区别
1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试.他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来 ...
- 用CodeBlocks构建C项目时候出现的问题
后缀名为depend的文件 是makefile 编译产生的文件 是生成一种依赖关系 帮助程序编译的 那为什么有时候会生成而有时候又不会呢? 看你makefile 自己的编写 写了就有 没写就没 ...