OnPreRender与Page_PreRender

Fal*_*que 3 asp.net

我知道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(),但它不是私有的吗?

有人可以说,两者之间有什么区别,何时使用哪个?一般应该使用哪一个?

use*_*080 5

OnPreRender页面的方法负责引发Page_PreRender事件.

通常你应该订阅这个Page_PreRender活动.

如果您需要在提升Page_PreRender事件之前进行一些特殊处理,那么您可以覆盖OnPreRender方法并在调用之前进行处理base.OnPreRender(e).