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

在我将顺便说一句有 3 个字段(名称、id 和活动)的 masterbook 对象放入列表之后

 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

4 回答 4

4

改变:

  <%#Container.DataItem%>

至:

  <%#Eval("name")%>
于 2013-06-17T13:29:38.327 回答
3

将其投射到 MasterBook:

Text="<%# ((MasterBook) Container.DataItem).Name %>">
于 2013-06-17T13:28:29.573 回答
0

使用这个语法:

<asp:Label ID="BookNameText" runat="server" 
                        Text="<%# ((MasterBook)Container.DataItem).Name %>">
于 2013-06-17T13:40:36.390 回答
0

快速、肮脏的 hack 解决方法是重载类的ToString()方法MasterBook以返回该名称。如果您这样做,请事后提交 seppuku。

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

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

于 2013-06-17T13:29:21.450 回答