asp.net中的PreLoad和Load事件

amj*_*jad 1 .net c# asp.net

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

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

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

那么为什么我们总是喜欢

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

Coo*_*ots 5

Page_Load事件处理程序会妥善处理所有页面控件的创建.每个文件:

Page对象调用Page对象上的OnLoad方法,然后递归地为每个子控件执行相同操作,直到加载页面和所有控件.单个控件的Load事件发生在页面的Load事件之后.

使用OnLoad事件方法在控件中设置属性并建立数据库连接.

...这意味着,根据您的示例,Label1.Text可能会被该控件的OnLoad事件重置(取决于单个控件的实现;我不知道这是否适用于Label控件,但如果这样做,它将符合文档发生).