Eval不显示Gridview中数据库的列

时间:2012-08-13 16:53:01

标签: asp.net gridview eval

我有一个国家/地区的数据库,其中包含名称和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>

页面上没有显示任何内容,我不明白为什么。有人可以给我一个暗示吗?

1 个答案:

答案 0 :(得分:0)

GridView中,我通常会使用Bind,而不是Eval

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

如果这不起作用,我能想到的另一个可能性是,绑定到Datasource的{​​{1}}没有名为“Name”的列(由于某种原因)

修改

实际上,您可能还想尝试在服务器端GridView控件中使用它:

Label