限制从GridView.DataSource显示的列

时间:2012-01-18 18:55:52

标签: c# asp.net gridview

我有一个GridView控件正在使用IList<> DataSourceList<>class Foo { public string prop1 {get;set;} public int prop2 {get;set;} public int prop3 {get;set;} public float prop4 {get;set;} } 包含以下类型的对象:

List

当我将GridView绑定到我可以指定的prop1 and prop2时,有没有办法,例如,我只想为{{1}}生成列?谢谢你的帮助

编辑:

我的总体目标是在表单上设置一个复选框,允许用户在查看完整表和缩短表之间切换,只显示最重要的列。真实对象有50多个属性,如果选中复选框,我只想显示最重要的10个属性。

2 个答案:

答案 0 :(得分:2)

如果您需要两个视图(重要列/所有列),请在复选框的事件处理程序中设置列的可见性:

gridView.Columns["Prop1"].Visible = showAllColumnsCheckBox.Checked;
gridView.Columns["Prop2"].Visible = showAllColumnsCheckBox.Checked;
...

答案 1 :(得分:1)

我不确定这是否有效,但您可以尝试:

<asp:TemplateField HeaderText="Prop1"> 
     <ItemTemplate>  
        <%# ((Foo)Container.DataItem).prop1 %>  
     </ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Prop2"> 
     <ItemTemplate>  
        <%# ((Foo)Container.DataItem).prop2 %>  
     </ItemTemplate> 
</asp:TemplateField>