Professional Documents
Culture Documents
Lifecycle
Lifecycle
Lifecycle
Loading the postback data: During this phase, the server searches any data
corresponding to the control that is loaded in the data posted by the client.
PreRendering: During this phase, the control is updated with the changes made to it.
This prepares the control for rendering.
Saving state: During this phase, the change in the state of control between the current
request and the previous request of the page is saved. For each change, the corresponding
event is raised. For example, if the text of a textbox is changed, the new text is saved and
a text_change event is raised.
Rendering: During this phase, the server creates the corresponding HTML tag for the
control.
Disposing: During this phase, all cleanup tasks, such as closing files and database
connections opened by the control are performed.
Unloading: During this phase, all cleanup tasks, such as destroying the instances of
server control are performed. This is the final event in the life cycle of a server control
The events associated with the relevant page cycle phases are:
The following figure illustrates how the server controls on an ASP.NET page is processed
by the server:
Each request for an .aspx page that hits IIS is handed over to HTTP Pipeline. HTTP Pipeline is a chain of
managed objects that sequentially process the request and convert it to plain HTML text content. The start
point of HTTP Pipeline is the HttpRuntime class. The ASP.NET infrastructure creates each instance of this
class per AppDomain hosted within the worker process. HttpRuntime class picks up an HttpApplication
object from an internal pool and sets it to work on the request. It finds out what class has to handle the
request. The association between the resources and handlers are stored in the configurable file of the
application. In web.config and also in machine.config you will find these lines in <httpHandlers>
section.
If you run through the following program, it will be much easier to follow
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>
This extension can be associated with HandlerClass or HandlerFactory class.
HttpApplication object gets the page object that implements the IHttpHandler
Interface. The process of generating the output to the browser is started when the
object calls ProcessRequest method.
Page Life Cycle
Once the HTTP page handler class is fully identified, the ASP.NET runtime calls the
handler's ProcessRequest to start the process. This implementation begins by
calling the method FrameworkInitialize(), which builds the control trees for the
page. This is a protected and virtual member of TemplateControl class, class from
which page itself derives.
Next the processRequest() makes page transits various phases: initialization,
loading of viewstate and postback data, loading of page's user code and execution
postback server-side events. Then page enters in render mode, the viewstate is
updated and HTML generated is sent to the output console. Finally page is unloaded
and request is considered completely served.
Stages and corresponding events in the life cycle of the ASP.NET page cycle:
Stage
Events/Method
Page Initialization
Page_Init
LoadViewState
LoadPostData
Page Loading
Page_Load
RaisePostDataChangedEvent
RaisePostBackEvent
Page_PreRender
SaveViewState
Page Rendering
Page_Render
Page Unloading
Page_UnLoad
Some of the events listed above are not visible at the page level. It will be visible if
you happen to write server controls and write a class that is derived from page.