我是ASP.NET的初学者,只是页面生命周期中的一个问题:

MSDN文档说:“在页面加载其自身和所有控件的视图状态之后,并在处理请求实例所包含的回发数据之后引发”,这意味着,我也可以将编程逻辑放在这里

protected void Page_PreLoad(object sender, EventArgs e)
{
   Label1.Text = "Hello World; the time is now " + DateTime.Now.ToString();
}


那为什么我们总是喜欢

protected void Page_Load(object sender, EventArgs e)
{
   Label1.Text = "Hello World; the time is now " + DateTime.Now.ToString();
}


最佳答案

Page_Load事件处理程序将正确处理所有页面控件的创建。根据documentation


  Page对象在Page对象上调用OnLoad方法,然后
  递归地对每个子控件执行相同的操作,直到页面和
  所有控件都已加载。各个控件的Load事件发生
  页面的Load事件之后。
  
  使用OnLoad事件方法来设置控件中的属性,并
  建立数据库连接。


...这意味着,根据您的示例,Label1.Text可能会由于该控件的OnLoad事件而被重置(取决于单个控件的实现;我不知道对于Label控件是否适用,但是会如果确实发生的话,请遵守文档)。

10-06 11:53