ASP.Net Page_Load and Page_LoadComplete

My application dbscript has a simple page structure for most pages: Each page related to a single record has a menu control displaying the links and actions for the current record.

For example, the Project page proj_edit.aspx embeds a proj_menu.ascx control, which retrieves some data from the database in the control’s Page_Load event.

If you want to access this data from the embedding page through the ascx control, you cannot access it in the page’s Page_Load event, as the Page_Load of the control has not yet fired. There is another event, less known (at least I did not know it), called Page_LoadComplete, which fires after each embedded control’s Page_Load has been processed.

To implement a Page_LoadComplete event in a page, you need to set

AutoEventWireup="true"

in the @Page directive of the aspx file.

Then simply add the lines

protected void Page_LoadComplete(object sender, EventArgs e)
{
}

to your page class in the aspx.cs file.

I posted about the ASP.Net page life cycle about a year ago, but recently came across this post which has a more detailed diagram on the page and control life cycle.

Download it. Memorize it. Make it your desktop background! 😉

5 thoughts on “ASP.Net Page_Load and Page_LoadComplete

  1. Pingback: ASP.Net 4 Page Life Cycle « devioblog

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.