Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OnPreRender vs Page_PreRender

Tags:

asp.net

I knew about Page PreRender event and also about overriding OnPreRender, but didn't know existence of Page_PreRender method. Recently while going through this forum i found and search the difference between both but couldn't get much?

Here is my observation:

I have a page with label Label1.

Scenario 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 ";
    }

value of Lable1 would be: load OnPreRender Page_PreRender

Scenario 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 ";
        }

Note the call order of base.OnPreRender(e);

value of Lable1 would be: load Page_PreRender OnPreRender

I can only say base.OnPreRender(e) is calling Page_PreRender(), but isn't it private?

Can some one please tell, what is difference between both and when to use which? In general which one should be used?

like image 755
Falaque Avatar asked Nov 15 '25 14:11

Falaque


1 Answers

The OnPreRender method of the page is responsible for raising the Page_PreRender event.

Usually you should just subscribe to the Page_PreRender event.

If you need to do some special processing before it's safe to raise the Page_PreRender event, then you can override the OnPreRender method and do the processing before calling base.OnPreRender(e).

like image 90
user1429080 Avatar answered Nov 17 '25 09:11

user1429080