using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
/// <summary>
///ExtendGridView 的摘要说明
/// </summary>
public class ExtendGridView:GridView
{
public ExtendGridView()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 合并单元格
/// </summary>
/// <param name="gvData">页面容器</param>
/// <param name="dt">数据集</param>
public static void UniteCellInfo(GridView gvData, int intStartIndex, int intEndIndex)
{
// 验证开始,结束
if (intStartIndex < 0)
{
intStartIndex = 0;
}
if (intEndIndex > gvData.Columns.Count)
{
intEndIndex = gvData.Columns.Count - 1;
}
// 用依次第一个去和下一个比,合并相同项,直到出现不一样的
for (int intColumn = intStartIndex; intColumn <= intEndIndex; intColumn++)
{
// row合并数
int intRowSpan = 2;
// 取第一个列值
TableCell tc = gvData.Rows[0].Cells[intColumn];
for (int intRow = 1; intRow < gvData.Rows.Count; intRow++)
{
if (tc.Text == gvData.Rows[intRow].Cells[intColumn].Text)
{
// 跨行
tc.RowSpan = intRowSpan;
// 下行隐藏
gvData.Rows[intRow].Cells[intColumn].Visible = false;
intRowSpan++;
tc.HorizontalAlign = HorizontalAlign.Center;
}
else
{
tc = gvData.Rows[intRow].Cells[intColumn];
intRowSpan = 2;
}
}
}
}
}
思路:建一个类,继承GridView即可