0

名前とIDを持つ国のデータベースがあります。

これがコードビハインドです。

CountriesEntities context = new CountriesEntities();
using (context)
{
    this.gridViewCountries.DataSource = context.Countries;
    this.gridViewCountries.DataBind();
}

そして、これをhtmlに入れると、期待どおりに機能し、すべての列と各国の情報が表示されます. <asp:GridView ID="gridViewCountries" runat="server" AutoGenerateColumns="true"/>

しかし、GridView をこれに変更すると:

<asp:GridView ID="gridViewCountries" runat="server" AutoGenerateColumns="false">
    <asp:Columns>
        <asp:TemplateField>
            <HeaderTemplate>
                Name
            </HeaderTemplate>
            <ItemTemplate>
                <span><%# Eval("Name") %></span>  
            </ItemTemplate>
        </asp:TemplateField>
    </asp:Columns>
</asp:GridView>

ページに何も表示されず、理由がわかりません。誰かが私にヒントを与えることができますか?

4

1 に答える 1

0

ではGridView、私は通常Bindこれに使用しEvalます。

<ItemTemplate>
    <span><%# Bind("Name") %></span>  
</ItemTemplate>

それがうまくいかない場合、私が考えることができる他の唯一の可能性は、DatasourceあなたにバインドされてGridViewいる に「名前」という名前の列がないことです(何らかの理由で)。

編集:

Label実際には、サーバー側のコントロール内でそれを使用することもできます。

<ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>  
</ItemTemplate>
于 2012-08-14T13:11:36.330 に答える