首页 新闻 搜索 专区 学院

ASP.NET根据数据库查询动态生成gridview表头

0
[已解决问题] 解决于 2012-04-05 13:33

如上图,假设完整的表头是这样的,现在根据用户的权限不同,可能有部分用户没权限看到【三三】那一列,那用户查询报表后应该生成如下图的表:

假设用户没权限看到【三三】和【四】这3列,那用户查询后的报表应该是:

现在我将所有的字段跟相应的用户权限都放到数据库里,想请问,在Gridview里面应该怎么根据查询到的字段来构建这个表头呢?

要根据数据库查询在后台或者用什么办法来动态构建,不是写死的哦。

Mr.ch的主页 Mr.ch | 初学一级 | 园豆:6
提问于:2012-03-31 19:04
< >
分享
最佳答案
0

 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        e.Row.CssClass = "tdfont";
        if (e.Row.RowType == DataControlRowType.Header)
        {
            TableCellCollection tcHeader = e.Row.Cells;
            tcHeader.Clear();
            string s1 = Request.QueryString["b"].ToString();
            string[] s2 =
            {
                "流程","前期","招标文件","开标前","后期</th></tr><tr>",          
                            "<a href=\"zbjy.aspx?a=" + Hdf1.Value + "&b=a31&c=1&d=评价意见&e="+Label1.Text+"\">评价意见</a>",
                };//数组声明结束

 

            for (int i = 0; i < s2.Length; i++)
            {
                tcHeader.Add(new TableHeaderCell());
                tcHeader[i].Text = s2[i];
                switch (i)
                {
                    case 0:
                        tcHeader[i].CssClass = "gd1"; break;
                    case 7:
                    case 8:
                    case 9:
                        tcHeader[i].CssClass = "gdbig"; break;
                    default: tcHeader[i].CssClass = "gdmiddle"; break;
                }

            }
            Label4.Text = "资格后审,正常程序";
            tcHeader[0].Attributes.Add("rowspan", "2"); //跨Row          
            tcHeader[1].Attributes.Add("colspan", "5");
            tcHeader[2].Attributes.Add("colspan", "6");
            tcHeader[3].Attributes.Add("colspan", "3");
            tcHeader[4].Attributes.Add("colspan", "11");
        }
      
    }

奖励园豆:5
happydaily | 菜鸟二级 |园豆:291 | 2012-03-31 21:34
其他回答(2)
0

在绑定的时候,需要动态创建绑定列。

forhells | 园豆:524 (小虾三级) | 2012-03-31 22:19
0

用GridView的RowDataBound事件

天 下 | 园豆:208 (菜鸟二级) | 2012-04-01 11:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册