我在这里遇到了一些麻烦。
我从我的数据库获得了一个DataTable,我想用它作为我的GridView的数据源。
问题:当我使用DataTable设置此GridView的数据源时,没有任何反应。但是,如果我设置另一个组件的数据源(如ListItem),则会显示数据。
我该怎么办? 请遵循以下代码:
<!-- Here I have a ListView. When I set the datasource, the data is showed. -->
<asp:ListView ID="listviewCustomers" runat="server">
<ItemTemplate>
<asp:Label runat="server" ID="myLabel" text="<%# bind('Name') %>" />
</ItemTemplate>
</asp:ListView>
<!-- Here I have a GridView. When I set the datasource, nothing happens. -->
<asp:GridView runat="server" ID="gridviewPassageiros">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="myLabel" text="<%# bind('Name') %>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:1)
最简单的情况可能是缺少对“gridviewPassageiros”的“DataBind”的调用。 另一种选择是添加虚拟内容。
代码隐藏
public void Page_OnLoad(object sender, EventArgs eventArgs)
{
if (!IsPostback)
{
gridviewPassageiros.DataSource = GetPassageiros();
gridviewPassageiros.DataBind();
}
}
ASPX:
<asp:GridView runat="server" ID="gridviewPassageiros">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<h1>TEST</h1>
<asp:Label runat="server" ID="myLabel" text="<%# bind('Name') %>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
评论中的代码:
DAOPassenger objDAOPassenger = new DAOPassenger();
gridviewPassageiros.DataSource = objDAOPassenger.GetAllPassangers();
gridviewPassageiros.DataBind();
您检查了GetAllPassangers
的结果吗?
答案 1 :(得分:0)
尝试使用
<asp:Label ID="myLabel" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
还要确保正确绑定数据
例如
if (dt.Rows.Count>0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
答案 2 :(得分:0)
我在您的代码中看到两个问题: 试试这个
Text='<%# Bind("Name") %>'
而不是
text="<%# bind('Name') %>"
我也无法在你的代码中看到DataSourceID
希望我帮助
答案 3 :(得分:0)
缺少DataSourceID ..没有为您的网格提供数据源。