ASP.Net Telerik RadGrid动态生成表头

本文详细介绍了如何通过重写GridBenDept_ItemCreated方法,利用TelerikRadControlsForASP.NET.AJAX组件在网格中实现复杂且自定义的多行多列表头布局。具体步骤包括在网格头部添加不同类型的表头单元格,并调整其属性以实现所需布局。示例代码和生成的表头截图提供了直观的实践指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Telerik RadControlsForASP.NET.AJAX是一款很强大的第三方控件,RadGrid是里面用的最多的控件。在旧版本中,要想生成多行多列的表头,应该重写GridBenDept_ItemCreated方法,在内部重新绘制表头。具体实现如下。

        /// <summary>
        /// 创建表头
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridBenDept_ItemCreated(object sender, GridItemEventArgs e)
        {
            TableHeaderCell tableCell;
            switch (e.Item.ItemType)
            {
                case Telerik.Web.UI.GridItemType.Header:
                    //第一行表头
                    TableCellCollection tcHeader = e.Item.Cells;

                    tcHeader.Clear();
                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("rowspan", "2");
                    tableCell.Text = string.Empty;
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "1");
                    tableCell.Text = string.Empty;
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("rowspan", "2");
                    tableCell.Text = "部门编号";
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("rowspan", "2");
                    tableCell.Text = "<Center>部门名称</Center>";
                    tcHeader.Add(tableCell);


                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "2");
                    tableCell.Text = "<Center>列1</Center>";
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "2");
                    tableCell.Text = "<Center>列2</Center>";
                    tcHeader.Add(tableCell);



                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "2");
                    tableCell.Text = "<Center>列3<Center>";
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "2");
                    tableCell.Text = "<Center>列4</Center>";
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("colspan", "2");
                    tableCell.Text = "<Center>列5</Center>";
                    tcHeader.Add(tableCell);

                    tableCell = new TableHeaderCell();
                    tableCell.Attributes.Add("rowspan", "2");
                    tableCell.Text = "<Center>操作</Center>" + "</th></tr><tr>";
                    tcHeader.Add(tableCell);

                    //第二行表头
                    for (int i = 0; i < 5; i++)
                    {
                        tableCell = new TableHeaderCell();
                        tableCell.Text = "<Center>XX</Center>";
                        tcHeader.Add(tableCell);
                        tableCell = new TableHeaderCell();
                        tableCell.Text = "<Center>XX</Center>";
                        tcHeader.Add(tableCell);
                    }
                    break;
            }
        }


生成的表头截图如下:

转载于:https://www.cnblogs.com/LiChangPing/archive/2012/11/05/2755306.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值