2

我在 aspx 页面中有一个用户控件。在用户控件中,我将 gridview 与数据表绑定。这个东西在页面重新加载时抛出 nullreference 异常。gridview 对象为空。我在任何地方都找不到帮助。

用户控件的cs页面中的代码是:

If(!IsPostBack)
{

DataTable dt = GetDataTable();
JobListGrid.DataSource = dt;   //This throws error cause the joblistgrid is null
JobListGrid.DataBind();   

}

asp代码:

<asp:GridView ID="JobListGrid" runat="server">
            <Columns></Columns>
            </asp:GridView>

我错过了什么吗?请帮忙。

4

2 回答 2

1

来自 MSDN:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

“Page对象调用Page对象上的OnLoad方法,然后递归地对每个子控件做同样的事情,直到页面和所有控件都加载完毕。个别控件的Load事件发生在页面的Load事件之后。使用OnLoad在控件中设置属性并建立数据库连接的事件方法。”

这不是您想要绑定的地方,因为您不能保证控件已经加载,除非您使用控件的负载而不是页面的负载。

请尝试使用 PreRender 事件。

在此处输入图像描述

于 2013-03-29T04:58:17.857 回答
0

试试这个,您可能需要在您的网格绑定列中的数据字段名称。

<asp:DataGrid><Columns><asp:BoundColumn DataField="YourDatabaseColumnName"></asp:BoundColumn></Columns></asp:DataGrid>
于 2013-03-29T04:28:41.897 回答