我在aspx页面中有一个usercontrol。在usercontrol中,我将gridview与数据表绑定在一起。这个东西在页面重新加载时抛出nullreference异常。 gridview对象为null。我无处可寻。
用户控件的cs页面中的代码是:
If(!IsPostBack)
{
DataTable dt = GetDataTable();
JobListGrid.DataSource = dt; //This throws error cause the joblistgrid is null
JobListGrid.DataBind();
}
aspx代码:
<asp:GridView ID="JobListGrid" runat="server">
<Columns></Columns>
</asp:GridView>
我错过了什么吗?请帮忙。
答案 0 :(得分:1)
来自MSDN:
http://msdn.microsoft.com/en-us/library/ms178472.aspx
“Page对象调用Page对象上的OnLoad方法,然后递归执行每个子控件的相同操作,直到页面和所有控件都被加载。单个控件的Load事件发生在页面的Load事件之后。 使用OnLoad事件方法在控件中设置属性并建立数据库连接。“
这不是您想要绑定的地方,因为您无法保证控件已经加载,除非您使用控件的加载而不是页面的加载。
尝试使用PreRender事件。
答案 1 :(得分:0)
试试这个,您可能需要在网格绑定列中使用数据字段名称。
<asp:DataGrid><Columns><asp:BoundColumn DataField="YourDatabaseColumnName"></asp:BoundColumn></Columns></asp:DataGrid>