Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据表属性修改Gridview_C#_Asp.net_Entity Framework_Gridview_If Statement - Fatal编程技术网

C# 根据表属性修改Gridview

C# 根据表属性修改Gridview,c#,asp.net,entity-framework,gridview,if-statement,C#,Asp.net,Entity Framework,Gridview,If Statement,我将试图解释这种情况 我有一个gridview,我希望根据用户可能设置的首选项进行修改。这些首选项存储在EDMX(tblPref)的表中。该表给出了首选项(即产品)、首选项别名(即SKU)以及是否应显示首选项(即ShowProduct) 例如,“标准网格”如下所示: Product UUF1 UUF2 1 a d 2 b e 3 c f tblPreference如下所示: Preference Alia

我将试图解释这种情况

我有一个gridview,我希望根据用户可能设置的首选项进行修改。这些首选项存储在EDMX(tblPref)的表中。该表给出了首选项(即产品)、首选项别名(即SKU)以及是否应显示首选项(即ShowProduct)

例如,“标准网格”如下所示:

Product  UUF1   UUF2
1        a        d
2        b        e
3        c        f
tblPreference如下所示:

Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        1
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        0
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    SKU             1
UUF1       Category        1
UUF2       Sub-Category    1
然而,在这种情况下,用户可能希望看到不同的列,即

Product     UUF2
    1        d
    2        e
    3        f
tblPreference如下所示:

Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        1
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        0
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    SKU             1
UUF1       Category        1
UUF2       Sub-Category    1
和/或他们希望用不同的文本标记标题,即

   SKU    Category Sub-Category
    1        a        d
    2        b        e
    3        c        f
tblPreference如下所示:

Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        1
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    Product     1
UUF1       UUF1        0
UUF2       UUF2        1
Preference Alias   ShowPreference
Product    SKU             1
UUF1       Category        1
UUF2       Sub-Category    1
现在,我意识到可以隐藏列(gridview.columns[0].Visbile=False),并且可以修改标题文本(gridview.HeaderRow.Cells[0].text=“Sku”)

我不确定的是我是如何把它全部带来的…重要的部分

显然会涉及到一些“如果”,但我想知道是否有人以前做过类似的事情,并且可以提供一些伪代码

我走这条路线的原因是,我可能有几百个用户可能希望gridview看起来与他们完全不同。作为一个菜鸟,尝试比“拖拽”更困难的事情对我来说也是件好事


因此,我们将非常感谢您提供的任何帮助。

您可以尝试在代码隐藏中以编程方式定义列,而不是在aspx文件中以声明方式定义列。您可以为DataBound事件添加一个处理程序,并在其中使用所需的任何标题文本创建您的文件。

如果您在aspx文件中设置了这样的网格

<asp:GridView runat=server ID=grid1 AutoGenerateColumns=false></asp:GridView>
虽然我相信这将不得不适应你的具体用途一点。这会给你一个好的开始。请注意,在运行上述设置列之后,仍然需要使用DataSource控件或通过如下手动绑定来为网格提供数据

grid1.DataSource = MyDataReader; //or data table, or collection of objects
grid1.DataBind();

非常感谢你的建议。我会离开去看一场比赛,但这给了我一个极好的起点——非常感谢你的帮助,我欠你一品脱。