GridView 合并列、行类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI.WebControls;
/// <summary>
///GridViewMergeCell 合并GridView liyang 20090916
/// </summary>
public class GridViewMergeCell
{
public GridViewMergeCell()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
#region 合并单元格 合并某一行的所有列
public static void GroupRow(GridView gridView)
{
for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
{
GridViewRow row = gridView.Rows[rowIndex];
GridViewRow previousRow = gridView.Rows[rowIndex + 1];
for (int i = 0; i < row.Cells.Count; i++)
{
if (row.Cells[i].Text == previousRow.Cells[i].Text)
{
row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 :
previousRow.Cells[i].RowSpan + 1;
previousRow.Cells[i].Visible = false;
}
}
}
}
/// <summary>
/// 合并GridView中某行相同信息的行(单元格)
/// </summary>
/// <param name="GridView1">GridView对象</param>
/// <param name="cellNum">需要合并的行</param>
public static void GroupRow(GridView gridView, int rows)
{
TableCell oldTc = gridView.Rows[rows].Cells[0];
for (int i = 1; i < gridView.Rows[rows].Cells.Count; i++)
{
TableCell tc = gridView.Rows[rows].Cells[i]; //Cells[0]就是你要合并的列
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.ColumnSpan == 0)
{
oldTc.ColumnSpan = 1;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
}
#endregion
#region 合并单元格 合并一行中的几列
/// <summary>
/// 合并单元格 合并一行中的几列
/// </summary>
/// <param name="GridView1">GridView ID</param>
/// <param name="rows">行</param>
/// <param name="sCol">开始列</param>
/// <param name="eCol">结束列</param>
public static void GroupRow(GridView gridView, int rows, int sCol, int eCol)
{
TableCell oldTc = gridView.Rows[rows].Cells[sCol];
for (int i = 1; i < eCol - sCol; i++)
{
TableCell tc = gridView.Rows[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列
tc.Visible = false;
if (oldTc.ColumnSpan == 0)
{
oldTc.ColumnSpan = 1;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
}
#endregion
#region 合并单元格 合并某一列所有行
/// <summary>
/// 合并GridView中某列相同信息的行(单元格)
/// </summary>
/// <param name="GridView1"></param>
/// <param name="cellNum"></param>
public static void GroupCol(GridView gridView, int cols)
{
if (gridView.Rows.Count < 1 || cols > gridView.Rows[0].Cells.Count - 1)
{
return;
}
TableCell oldTc = gridView.Rows[0].Cells[cols];
for (int i = 1; i < gridView.Rows.Count; i++)
{
TableCell tc = gridView.Rows[i].Cells[cols];
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.RowSpan == 0)
{
oldTc.RowSpan = 1;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
}
#endregion
#region 合并单元格 合并某一列中的某些行
/// <summary>
/// 合并单元格 合并某一列中的某些行
/// </summary>
/// <param name="GridView1">GridView ID</param>
/// <param name="cellNum">列</param>
/// <param name="sRow">开始行</param>
/// <param name="eRow">结束列</param>
public static void GroupCol(GridView gridView, int cols, int sRow, int eRow)
{
if (gridView.Rows.Count < 1 || cols > gridView.Columns.Count - 1)
{
return;
}
TableCell oldTc = gridView.Rows[sRow].Cells[cols];
for (int i = 1; i < eRow - sRow; i++)
{
TableCell tc = gridView.Rows[sRow + i].Cells[cols];
tc.Visible = false;
if (oldTc.RowSpan == 0)
{
oldTc.RowSpan = 1;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
}
#endregion
}
转载于:https://www.cnblogs.com/diony/archive/2011/08/19/2145759.html
GridView 合并列、行类相关推荐
- GridView合并列下的行单元格的方法
1.在GridView中要合并单元格,如得到如下效果 可在GridvIew中调的DataBind事件调用下面类中的方法,先在项目的App_Code文件夹下添加下面的类,下面类中写了两个方法,一个是模板 ...
- GRIDVIEW多行多列合并单元格(合并列)
GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子) ...
- 通过poi导出复杂excel既有合并行又有合并列
通过poi导出形如以下的复杂excel: 此excel里左边和右边的用户可以自由选择是否导出这几列,中间的题型有单选.多选.填空.排序 这是详情表,还有分值表如下: 占比表如下: 我自己写了个针对上面 ...
- element UI table合并行合并列(整理)
效果图1: 图一 <template><div class="container"><el-table :data="dataSource& ...
- 记录:mysql行合并列合并显示
搬砖时遇到一个sql需要合并行 且 合并 列字段 显示的要求,好像是第一次写,记录一下. SELECT b.push_id AS pushId, b.push_time AS pushTi ...
- e-table 合并行 合并列
先来一一个数组 [1,2,0,1,3,0,0] 比如一个e-table 有多少行,这个数组就有多少元素 1 表示正常,2 表示 当前和下面一个合并单元格,那么后一个就是0, 3表示 当前与下面 ...
- Excel:有合并列和横排多行的每个单元格数据与首列组合竖排
需求如图: 左侧表格转为右侧的,注意:有合并列和多行 解决方法: (1)选中(单击)数据表中任意格子,以定位数据来源表格 (2)数据--获取数据--自其他源--自表格/区域 步骤如图: (3) 在弹出 ...
- 前端HTML CSS合并行、合并列
在初学前端时,对于表格中的合并行,合并列不是很清楚,下面是自己的理解 合并行:rowspan 合并列:colspan 就下图所示,这个表有3行6列, 我们可以分析图上的合并情况 接下来就是代码了 在h ...
- markdown表格合并列和行
文章目录 markdown表格 vscode下 multi-markdown vscode下markdown加载latex markdown表格 markdown基础语法中不支持表格行和列的合并写法, ...
最新文章
- D3可视化:(1)初次见面,SVG与D3的魅力
- Linux负载均衡Nginx六种策略
- 用Python采集了几千条相亲文案,终于发现了告别单身的秘密
- centos磁盘满了,查找大文件并清理
- AIRSDK 3.7 加载远程的含有代码的swf文件
- 我在软件协会修WiFi
- 华为手机计算机快捷,快速让华为手机变成一台电脑,INNOCN便携显示器的更多玩法...
- python,检测代理ip是否有效
- PowerBI可视化实战:商品销售动态ABC分析案例
- android设置标题颜色设置颜色,设置标题背景颜色
- 成都博兰科技有限公司助宝兰网进入云贵川渝市场 www.beylai.com
- 蒙牛发言人香港发言措辞欠妥
- matlab简易画爱心
- 职称计算机ppt教程,职称计算机:Word文档转为PPT的两种方法
- 细节:如何轻松影响他人
- 中鑫吉鼎|家庭成长期如何进行理财规划
- jacob调用精伦身份证读卡器
- oracle sql developer的简单使用
- python 乘法运算定律_乘法运算定律专项练习题整理
- Sprintboot redis 采用gzip和Snappy compress压缩数据
热门文章
- 【爆牙齿】说说我期待中的苹果那块板子。
- Java多线程(二)——多线程基本特性
- python怎样播放音乐_Python如何播放音乐?
- 项目启动会ppt_公司召开SAPERP项目启动会
- html5文章标题定格,HTML5最佳做法; 部分/标题/旁边/文章元素
- harmonyos2.0怎么更新,harmonyOS 2.0什么时候更新 harmonyOS 2.0手机开发者Beta版更新内容[多图]...
- SQL基础面试题(五)
- java语言构造顺序树_PAT-1086(Tree Traversals Again)Java语言实现+根据中序和前序遍历构建树并且给出后序遍历序列...
- LeetCode 515. 在每个树行中找最大值(广度优先搜索)
- 《GPU高性能编程CUDA实战》代码整理