5
List<MasterBook> listOfBooks = new List<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>

問題は、ブックマスターの名前をグリッドビューの列に表示したいということです。このコードは、ブックマスターを列に印刷する方法です

4

4 に答える 4

4

変化する:

  <%#Container.DataItem%>

に:

  <%#Eval("name")%>
于 2013-06-17T13:29:38.327 に答える
0

手早く汚いハックの回避策は、その名前を返すためにクラスのToString()メソッドをオーバーロードすることです。MasterBookやったら切腹する。

洗練された優雅な方法は、オブジェクト データソース を作成することです。そうすれば、グリッド ビューの列をオブジェクトのプロパティにバインドできます。DataList またはその他のテンプレート化されたデータ コントロールの場合、オブジェクトのプロパティをテンプレート内のデータ コントロールの子コントロールにバインドできます。

中間のパスは、hutchonoid の回答にあります。オブジェクト自体ではなく、オブジェクトのプロパティを評価します。

于 2013-06-17T13:29:21.450 に答える
0

次の構文を使用します。

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