欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

ASPxGridView控件实现多表头的两种方法

创建时间:2011年08月05日 14:13  阅读次数:(7645)
分享到:
在项目中一直都是用ASPxGridView控件,免不了需要在ASPxGridView控件上实现多表头,本人研究了实现多表头的两种方法,以供大家参考。

因ASPxGridView与GridView控件差不多,以下思路同样也适用于微软的GridView控件。

以下代码中表头的细节处理为本人项目所需,读者可根据自己的需求修改代码。

方法一:在Render事件中重写AspxGridView表头,主要思路是获取到表头对象,再重绘表头。
 
     protected override void Render(HtmlTextWriter writer)
        {
            GridViewHtmlTable table = (GridViewHtmlTable)this.grid.FindControl("DXHeaderTable");
            table.Rows.Clear();

            TableRow tr = new TableRow(); //第一行
            TableCell tc;
            for (int i = 0; i < 18; i++)
            {
                tc = new TableCell();
//自己的tc处理逻辑

                tr.Cells.Add(tc);
            }
            table.Rows.AddAt(0, tr);

            tr = new TableRow(); //第二行
            for (int i = 1; i <= 9; i++)
            {
                tc = new TableCell();
//自己的tc处理逻辑

                tr.Cells.Add(tc);
            }
            table.Rows.AddAt(1, tr);

            base.Render(writer);
        }


方法二:在AspxGridView的行创建事件中重绘表头,主要思路是在创建表头时就根据自己的需要创建。
 
       protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
        {
            if (e.RowType == GridViewRowType.Data && e.VisibleIndex == grid.PageIndex * grid.SettingsPager.PageSize)
            {
                Table table = e.Row.Parent as Table;
                table.Rows.RemoveAt(0);

                TableRow tr = new TableRow(); //第一行
                TableCell td;

                for (int i = 0; i < 8; i++)
                {
                    tc = new TableCell();
    //自己的tc处理逻辑

                    tr.Cells.Add(tc);
                }

                table.Rows.AddAt(0, tr);

                tr = new TableRow(); //第二行
                for (int i = 0; i < 6; i++)
                {
                    tc = new TableCell();
    //自己的tc处理逻辑

                    tr.Cells.Add(tc);
                }
                table.Rows.AddAt(1, tr);
            }
        }
e
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 51+42=? 的结果(结果是:93)
结  果: