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 - ; rowIndex >= ; rowIndex--)
{
GridViewRow row = gridView.Rows[rowIndex];
GridViewRow previousRow = gridView.Rows[rowIndex + ];
for (int i = ; i < row.Cells.Count; i++)
{
if (row.Cells[i].Text == previousRow.Cells[i].Text)
{
row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < ? :
previousRow.Cells[i].RowSpan + ;
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[];
for (int i = ; 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 == )
{
oldTc.ColumnSpan = ;
}
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 = ; i < eCol - sCol; i++)
{
TableCell tc = gridView.Rows[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列
tc.Visible = false;
if (oldTc.ColumnSpan == )
{
oldTc.ColumnSpan = ;
}
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 < || cols > gridView.Rows[].Cells.Count - )
{
return;
}
TableCell oldTc = gridView.Rows[].Cells[cols];
for (int i = ; i < gridView.Rows.Count; i++)
{
TableCell tc = gridView.Rows[i].Cells[cols];
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
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 < || cols > gridView.Columns.Count - )
{
return;
}
TableCell oldTc = gridView.Rows[sRow].Cells[cols];
for (int i = ; i < eRow - sRow; i++)
{
TableCell tc = gridView.Rows[sRow + i].Cells[cols];
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
}
#endregion
} 转自 http://blog.csdn.net/xinshi9608/article/details/5642382
GridView中合并单元格的更多相关文章
- Windows Forms DataGridView中合并单元格
Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.D ...
- 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行
1.常用表格标签 普通 <table> | <tr> | | <th ...
- C# DataGridView中合并单元格
/// 合并GridView列中相同的行 /// /// GridView对象 /// 需要合并的列 public static void GroupRows(GridView GridView1, ...
- tkinter的grid布局中合并单元格
rowspan 合并多行,比如:Label(root,text="table",width=10,height=2,),grid(row=0,column=0,rowspan=2 ...
- GridView相同内容合并单元格
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web; ...
- poi获取合并单元格内的第一行第一列的值
当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 合并单元格
jQuery EasyUI 数据网格 - 合并单元格 数据网格(datagrid)经常需要合并一些单元格.本教程将向您展示如何在数据网格(datagrid)中合并单元格. 为了合并数据网格(datag ...
- GRIDVIEW多行多列合并单元格(合并列)
GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子) ...
- C# 获取Excel中的合并单元格
C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...
随机推荐
- myBaits缓存
转自:https://blog.csdn.net/zhongzh86/article/details/50019511 9. Mybatis 缓存 正如大多数持久层框架一样,MyBatis 同样提供了 ...
- 小米手机Root 刷机
需要备份的资料: miui系统资料:电话.短信.便签,有小米云账号wifi下自己会备份好的. 应用数据:微信.qq 聊天记录: UC浏览器收藏夹. root后, rootexplorer,选择某个文件 ...
- 使用copy函数输出容器中的内容
container<type> c; 输出语句为:copy(c.begin(), c.end(), ostream_iterator<type>(cout, " &q ...
- 深入理解Java线程池
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁 ...
- redis 批量删除键
主题 为啥会有这篇文章呢? 在redis里我需要批量删除一些 "特殊" 的数据...这些特殊的数据用正常方法比较难删除...所以记录一下我的删除方法.. 背景与问题 我再用Spri ...
- Hibernate多对多关联映射的HQL中的in条件查询问题
群里有朋友求解一个问题,高分求一条HQL多对多查询语句 . 问题描述见 http://topic.csdn.net/u/20090621/16/4eac6fe0-bf3e-422e-a697-f758 ...
- (转) iphone开发资源汇总
如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://g ...
- android-tip-SocketException之ETIMEDOUT
异常出现时间 如果我们有一个长连接,此时网络被关闭,或者暂时失去信号, 此时就会出现此异常. 如果出现此异常,则不得不重连.
- js常用utils
var utils = { /** * 日期格式化 * * @param {Date} date 指定日期 * @param {String} format * @returns {String} * ...
- springboot+beetlsql+mysql整合
一.工程目录结构 二.pom.xml文件配置 <dependency> <groupId>mysql</groupId> <artifactId>mys ...