Asp.net将列表绑定到gridview

本文关键字:gridview 绑定 列表 net Asp | 更新日期: 2023-09-27 18:18:55

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

之后,我把masterbook对象顺便说一下,它有3个字段(name,id和active)放入列表

 GridView1.DataSource = listOfBooks;
 GridView1.DataBind(); 
web表单中的

   <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我如何使它键入名称

Asp.net将列表绑定到gridview

变化:

  <%#Container.DataItem%>

:

  <%#Eval("name")%>

将其强制转换为MasterBook:

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

快速而肮脏的破解方法是重载MasterBook类的ToString()方法以返回该名称。如果你做了,请在事后切腹。

最优雅的方式是创建一个对象数据源。这样你就可以将网格视图的列绑定到对象的属性上。在DataList或其他模板化数据控件的情况下,你可以将对象的属性绑定到数据控件的模板中的子控件。

中间路径在hutchonoid的答案中:计算对象的一个属性,而不是对象本身。

使用此格式:

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