限制GirdView.DataSource中显示的列

本文关键字:显示 GirdView DataSource 限制 | 更新日期: 2023-09-27 18:20:46

我有一个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生成列?感谢的帮助

编辑:

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

限制GirdView.DataSource中显示的列

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

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

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

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