ASP.NET Page Life Cycle
Processing of ASP.NET web page takes place in different stages on server side. Different events raised on different stages. This allows the web page to be in processing flow. Following are the web page processing stages and their respective events.
Remember that these stages occur independently for every page request.
Page Framework Initialization - Page.Init
In this stage, the ASP.NET creates the web page and generates all controls which are defined on the web page in the form of tags. If the page is not being requested for the first time, ASP.NET deserializes the view state and applies it to all controls.
User Code Initialization - Page.Load
If the page is being requested for the first time or it is a part of postback, the event
Page.Load
is always called. The required initialization of controls can be done in this stage. ASP.NET allows you to distinguish between the first time page is being loaded and it is being postback. This is just to boost the performance by loading the dynamic data on the very first load of page, not on the postback. On the postback, ASP.NET restores the control’s properties from the view state. To determine the current state of the page, you can use the IsPostBack
property of the page like this:If (!IsPostBack)
{
//do something here.
}
Validation and Event Handling
Validation
Some validation controls are included in ASP.NET to validate other user input controls and error messages. These validation controls are self sufficient, which means you don’t need to take care of the validation events. The validation occurs after the
Page.Load
event and before any other event fired.Event handling
At this stage, the web page is fully loaded and validated. Now ASP.NET fires all those events that have taken place since the last postback. Events have been categorized in the following two parts:
- Immediate response events: like button click, click on different links, image click, or image button click (that trigger the postback by calling the
_doPostBack
) - Change Events: These events are fired in changing of selections or text change in text box. These events are called if the
AutoPostBack
property is set toTRUE
for the control otherwise they fire the next time page ispostback
.
Automatic Data Binding - Page.PreRender
ASP.NET automatically performs updates and queries against your data source controls as a part of page life cycle. Essentially, there are two types of data source operations.
- Before firing of
Page.PreRender
event: Operations likeinsert
,update
ordelete
performed after all controls events but beforePage.PreRender
event fires. - After firing of
Page.PreRender
event: The data source controls perform their queries and insert the retrieved data to their binding controls.
The
Page.PreRender
event is supposed to be the last action in the page life cycle before the page is rendered to HTML. During the pre-render, the page and controls are available so far, some actions can be performed here like storing some additional information to view state.Cleanup - Page.Unload
At the end of the page life cycle, when web page has been rendered to HTML, the
Page.Unload
event fired. The .NET Framework garbage collector service runs to clean up the orphan objects to release the unnecessary occupied memory. When garbage collector is done with clean up, the Page.Dispose
event fires. This is the end of the page life cycle.