为GridView添加合并单元格功能

来源:互联网 发布:黄岛宏智软件 编辑:程序博客网 时间:2024/05/24 06:41
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即可

 

原创粉丝点击