ASP.NET Web窗体不在GridView中显示数据

时间:2012-07-26 11:05:18

标签: asp.net datagrid webforms

我在这里遇到了一些麻烦。

我从我的数据库获得了一个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>

4 个答案:

答案 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 ..没有为您的网格提供数据源。