首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnPreRender vs Page_PreRender

OnPreRender vs Page_PreRender
EN

Stack Overflow用户
提问于 2012-07-04 15:42:57
回答 2查看 20.1K关注 0票数 3

我知道页面PreRender事件,也知道重写OnPreRender,但不知道Page_PreRender方法的存在。最近通过这个论坛,我发现并搜索了两者之间的区别,但不能得到太多?

以下是我的观察结果:

我有一个标签为Label1的页面。

场景1:

代码语言:javascript
复制
    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 ";
    }

Lable1的值为: load OnPreRender Page_PreRender

场景2:

代码语言:javascript
复制
        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 ";
        }

注意base.OnPreRender(E)的调用顺序;

Lable1的值为: load Page_PreRender OnPreRender

我只能说base.OnPreRender(e)正在调用Page_PreRender(),但它不是私有的吗?

有人能告诉我,两者和何时使用哪一个有什么区别吗?一般情况下,应该使用哪一个?

EN

回答 2

Stack Overflow用户

发布于 2012-07-04 16:05:06

该页的OnPreRender方法负责引发Page_PreRender事件。

通常,您应该只订阅Page_PreRender事件。

如果需要进行一些特殊处理,才能安全地引发Page_PreRender事件,则可以覆盖OnPreRender方法并在调用base.OnPreRender(e)之前进行处理。

票数 5
EN

Stack Overflow用户

发布于 2012-07-04 15:45:45

当为页面设置AutoEventWireup="true"时,将调用Page_事件。这就是在不显式连接的情况下创建和调用它们的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11324556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档