仅在GridView中显示某些列表对象属性

时间:2012-01-24 21:30:24

标签: c# asp.net list data-binding gridview

我有一个GridView控件,它绑定到List个自定义对象。这些对象有5个属性,但是,我不想在GridView中为所有属性生成一个列,仅针对某些属性。我知道如何关闭'AutoGenerateColumns',但是,我不知道如何只选择性地显示每个对象的某些属性。有谁知道应该怎么做或者能为我提供这样做的一个例子?


示例

假设我有一个这样的列表:List<Car> cars = new List<Car>

每个Car都有ModelMakeYearTransmissionColor的属性。

我希望我的GridView控件绑定到汽车List,但只有列显示ModelMakeYear

2 个答案:

答案 0 :(得分:2)

您需要创建BoundField或TemplateField。例如。

<asp :GridView ID=“GridView1″ runat=“server”>
    <columns>
        <asp :BoundField DataField=“ColumnName”
            DataFormatString=“{0:M-dd-yyyy}”
            HtmlEncode=“false”
            HeaderText=“ColumnName” />
        </columns>
</asp:GridView>

<asp:TemplateField>
        <HeaderTemplate>Make</HeaderTemplate>
        <ItemTemplate><%# DataBinder.Eval(Container.DataItem, 
                     "Make")%></ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:0)

您需要创建BindingList<yourObject>。本质上它就像一个List,但更容易绑定到数据源。

然后在前端的列集合中,您将使用DataPropertyName属性显示要显示的每个属性的Public属性。看看下面的文章。希望这会有所帮助。

Binding a GridView to a collection