| Begin Transaction (only when transactions are enabled for the page) |
| |
Begin Transaction |
ProcessRequestTransacted() |
| |
|
TransactedCallback() on -------------------- Process Request Main -------------------- (described below) Transactions.InvokeTransacted -- parts of the request that need to be done under transacted context |
| |
| Process Request Main (every page, this is the main execution path) |
| |
Init |
InitRecursive() Raise OnInit (recursive) Begin tracking viewstate |
| |
LoadViewState |
LoadPageViewState() LoadPageStateFromPersistenceMedium() |
| |
ProcessPostData1 |
ProcessPostData(_requestValueCollection, true /* BeforeLoad */); Hand postback data to the controls that exist before Page_Load Page.Validate() |
| |
Load |
LoadRecursive(); Fire OnLoad() (recursive) |
| |
ProcessPostData2 |
ProcessPostData(_leftoverPostData, false /* BeforeLoad */); Hand postback data to controls added in Load (using LoadControl, for example) |
| |
Raise ChangedEvents |
RaiseChangedEvents() RaisePostDataChangedEvent() on each control with postback data that is not an IPostBackEventHandler |
| |
Raise PostBackEvent |
RaisePostBackEvent(_requestValueCollection) RaisePostBackEvent() on the control that caused the postback |
| |
PreRender |
PreRenderRecursive() if Page.Visible EnsureChildControls() -- creates controls if they haven't already been created by databinding Fire OnPreRender (recursive) |
| |
Build Trace Tree |
BuildProfileTree("ROOT", EnableViewState) |
| |
SaveViewState |
SavePageViewState() Save state recursively for the page and it's controls |
| |
Render |
RenderControl(CreateHtmlTextWriter(Response.Output)) if Page.Visible Render() (recursive) |
| |
| Finish Transaction (only when transactions are enabled for the page) |
| |
End Transaction |
Fire OnAbortTransaction() or OnCommitTransaction() |
| |
| End Trace (only when Tracing is enabled) |
| |
Trace.EndRequest |
if PageOutput Trace.Render |
| |
Process Request Cleanup (every request) * Set Request and Response to null |
| |
UnloadRecursive |
UnloadRecursive() Fire OnUnload() (recursive) Dispose() |