Following are the different stages of an
ASP.Net page:
Page request
When ASP.Net gets a page request, it decides whether to parse and compile the
page or there would be a cached version of the page; accordingly the response is
sent
Starting of page life cycle
at this stage, the Request and Response objects are set. If the request is
an old request or post back, the IsPostBack property of the page is set to true.
The UICulture property of the page is also set.
Page initialization
at this stage, the controls on the page are assigned unique ID by setting the
UniqueID property and themes are applied. For a new request postback data is
loaded and the control properties are restored to the view-state values.
Page load
at this stage, control properties are set using the view state and control state
values.
Validation
Validate method of the validation control is called and if it runs
successfully, the IsValid property of the page is set to true.
Postback event handling
if the request is a postback (old request), the related event handler is called.
Page rendering
. at this stage, view state for the page and all controls are saved. The page
calls the Render method for each control and the output of rendering is written
to the OutputStream class of the Page's Response property.
Unload
the rendered page is sent to the client and
page properties, such as Response and Request are unloaded and all cleanup done.
ASP.Net Page Life Cycle Events
Following are the page life cycle events:
PreInit
PreInit is the first event in page life cycle. It checks the IsPostBack property
and determines whether the page is a postback. It sets the themes and master
pages, creates dynamic controls and gets and sets profile property values. This
event can be handled by overloading the OnPreInit method or creating a
Page_PreInit handler.
Init
Init event initializes the control property and the control tree is built. This
event can be handled by overloading the OnInit method or creating a Page_Init
handler.
InitComplete
InitComplete event allows tracking of view state. All the controls turn on
view-state tracking.
LoadViewState
LoadViewState event allows loading view state information into the controls.
LoadPostData
during this phase, the contents of all the input fields defined with the <form>
tag are processed.
PreLoad
PreLoad occurs before the post back data is loaded in the controls. This event
can be handled by overloading the OnPreLoad method or creating a Page_PreLoad
handler.
Load
The Load event is raised for the page first and then recursively for all child
controls. The controls in the control tree are created. This event can be
handled by overloading the OnLoad method or creating a Page_Load handler.
LoadComplete
The loading process is completed, control event handlers are run and page
validation takes place. This event can be handled by overloading the
OnLoadComplete method or creating a Page_LoadComplete handler.
PreRender
The PreRender event occurs just before the output is rendered. By handling this
event, pages and controls can perform any updates before the output is rendered.
PreRenderComplete
as the PreRender event is recursively fired for all child controls, this event
ensures the completion of the pre-rendering phase.
SaveStateComplete
state of control on the page is saved. Personalization, control state and view
state information is saved. The HTML markup is generated. This stage can be
handled by overriding the Render method or creating a Page_Render handler.
UnLoad
the UnLoad phase is the last phase of the page life cycle. It raises the UnLoad
event for all controls recursively and lastly for the page itself. Final cleanup
is done and all resources and references, such as database connections, are
freed. This event can be handled by modifying the OnUnLoad method or creating a
Page_UnLoad handler.