asp.net将列表绑定到gridview

时间:2013-06-17 13:25:48

标签: c# asp.net

List<MasterBook> listOfBooks = new List<MasterBook>();

我把masterbook对象放到列表中之后有3个字段(name,id和active)

 GridView1.DataSource = listOfBooks;
 GridView1.DataBind(); 

在网络表单中     

   <Columns>

            <asp:TemplateField HeaderText="Book Name">
                <ItemTemplate>
                    <asp:Label ID="BookNameText" runat="server" 
                            Text="<%#Container.DataItem%>">

                    </asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>

    </asp:GridView>

问题是我想在gridview列中显示bookmaster的名字 这个代码在列中打印bookmaster如何使其键入名称

4 个答案:

答案 0 :(得分:4)

更改:

  <%#Container.DataItem%>

要:

  <%#Eval("name")%>

答案 1 :(得分:3)

将其投射到MasterBook:

Text="<%# ((MasterBook) Container.DataItem).Name %>">

答案 2 :(得分:0)

快速,肮脏的黑客解决方法是重载ToString()类的MasterBook方法以返回该名称。如果你这样做,请在之后提交seppuku。

优雅而优雅的方式是an object datasource。这样,您可以将网格视图的列绑定到对象的属性。对于DataList或其他模板化数据控件,您可以将对象的属性绑定到模板中数据控件的子控件。

中间路径是hutchonoid的答案:评估对象的属性,而不是对象本身。

答案 3 :(得分:0)

使用以下语法:

<asp:Label ID="BookNameText" runat="server" 
                        Text="<%# ((MasterBook)Container.DataItem).Name %>">