我是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
控件是否适用,但是会如果确实发生的话,请遵守文档)。