Page_Load上的NullReferenceException

时间:2009-03-31 22:38:53

标签: c# asp.net

我正在尝试在ASP.NET页面上以Page_Load形式编辑文本框的文本,但是当我尝试编辑TextBox1.Text时,它会抛出NullReferenceException,因为TextBox尚未实例化。具体来说,我正在尝试实现的是:http://www.codeproject.com/KB/user-controls/popupcalendarcontrol.aspx但它是为旧版本的ASP.NET编写的,并不适用于我。有没有办法在Page_Load开头实例化控件?还是我能加载的其他事件?使用普通的Windows窗体,我会在构造函数中调用InitializeComponent()。

3 个答案:

答案 0 :(得分:2)

您可以附加绝对不同的事件,但听起来页面没有正确加载控件,因为它们应该可用。您可以查看ASP.NET Page Life Cycle以获取更多信息。

答案 1 :(得分:2)

TextBox是否位于绑定控件中,例如FormView,GridView,DataList等?如果是这样,那么直到数据绑定发生之后控件才会存在。一旦发生该事件,您可以执行类似

的操作
  

DirectCast(myDataList.SelectedRow.FindControl("myTextBox"), TextBox).Text

答案 2 :(得分:0)

我知道我在解决这个问题方面有点落后但是我发现了一些我在任何地方找不到的异常信息。看来如果您的页面在主页面“下”,并且如果您在所述母版页上引用任何内容,则当前页面的控件为空 - 其中每个页面都是如此。我通过引用“Master.Environment” - 一个公共字符串 - 在我的InitializeCulture方法中找到了这一点,并且在我的当前(Default.aspx)页面上的FIRST控件在Page_Load()期间为空 - 无论第一个控件是什么。

我知道我迟到但如果这可以帮助任何人,我想要说出来。