我知道Page PreRender事件以及覆盖OnPreRender,但不知道是否存在Page_PreRender方法.最近在浏览这个论坛的时候,我发现并搜索了两者之间的差异但是得不到多少?
这是我的观察:
我有一个标签为Label1的页面.
场景1:
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "load ";
}
protected override void OnPreRender(EventArgs e)
{
Label1.Text += "OnPreRender ";
base.OnPreRender(e);
}
private void Page_PreRender(object sender, System.EventArgs e)
{
Label1.Text += "Page_PreRender ";
}
Run Code Online (Sandbox Code Playgroud)
Lable1的值将是:加载OnPreRender Page_PreRender
场景2:
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "load ";
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
Label1.Text += "OnPreRender ";
}
private void Page_PreRender(object sender, System.EventArgs e)
{
Label1.Text += "Page_PreRender ";
}
Run Code Online (Sandbox Code Playgroud)
注意base.OnPreRender(e)的呼叫顺序;
Lable1的值为:load Page_PreRender OnPreRender
我只能说base.OnPreRender(e)正在调用Page_PreRender(),但它不是私有的吗?
有人可以说,两者之间有什么区别,何时使用哪个?一般应该使用哪一个?
OnPreRender页面的方法负责引发Page_PreRender事件.
通常你应该订阅这个Page_PreRender活动.
如果您需要在提升Page_PreRender事件之前进行一些特殊处理,那么您可以覆盖OnPreRender方法并在调用之前进行处理base.OnPreRender(e).