C# 根据表属性修改Gridview
我将试图解释这种情况 我有一个gridview,我希望根据用户可能设置的首选项进行修改。这些首选项存储在EDMX(tblPref)的表中。该表给出了首选项(即产品)、首选项别名(即SKU)以及是否应显示首选项(即ShowProduct) 例如,“标准网格”如下所示: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
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();
非常感谢你的建议。我会离开去看一场比赛,但这给了我一个极好的起点——非常感谢你的帮助,我欠你一品脱。