Complete Lifecycle of an ASP.Net page and controls
Many people have blogged about the lifecycle of an ASP.Net Page or Master Page but every time I need to find the complete lifecycle of a control it’s not so easy. Today I wrote a couple of test pages to generate a reference.
The pages are very simple, I just overrode every method I could find and wrote to the trace. For completeness when the method called its base I wrapped it with “Start MethodName” and “End MethodName” (if you look at the trace outputs below you will see why). I did this for the Master Page (.master), Page (.aspx), User Control (.ascx) and Web Control (.cs), the page structre was simple:
- Master Page
- Page
- User Control
- Web Control
- Page
ASP.Net 2.0 Master Page Life Cycle
- Start Construct()
- End Construct()
- Start FrameworkInitialize()
- End FrameworkInitialize()
- Start AddParsedSubObject(object obj)
- CreateControlCollection()
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End AddParsedSubObject(object obj)
- Start AddParsedSubObject(object obj)
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End AddParsedSubObject(object obj)
- Start AddParsedSubObject(object obj)
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End AddParsedSubObject(object obj)
- Start AddParsedSubObject(object obj)
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End AddParsedSubObject(object obj)
- Start AddParsedSubObject(object obj)
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End AddParsedSubObject(object obj)
- ResolveAdapter()
- Start OnInit(EventArgs e)
- End OnInit(EventArgs e)
- Start TrackViewState()
- End TrackViewState()
- Start OnLoad(EventArgs e)
- Page_Load(object sender, EventArgs e)
- End OnLoad(EventArgs e)
- Start EnsureChildControls()
- ResolveAdapter()
- Start CreateChildControls()
- End CreateChildControls()
- End EnsureChildControls()
- Start OnPreRender(EventArgs e)
- End OnPreRender(EventArgs e)
- SaveViewState()
- SaveViewState()
- HasControls()
- Start RenderControl(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- Start RenderChildren(HtmlTextWriter writer)
- End RenderChildren(HtmlTextWriter writer)
- End Render(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- End RenderControl(HtmlTextWriter writer)
ASP.Net 2.0 Page Life Cycle
- ResolveAdapter()
- DeterminePostBackMode()
- Begin PreInit
- Start OnPreInit(EventArgs e)
- End OnPreInit(EventArgs e)
- HasControls()
- Start RemovedControl(Control control)
- End RemovedControl(Control control)
- ResolveAdapter()
- Start AddedControl(Control control, int index)
- End AddedControl(Control control, int index)
- End PreInit
- Begin Init
- ResolveAdapter()
- Start OnInit(EventArgs e)
- End OnInit(EventArgs e)
- Start TrackViewState()
- End TrackViewState()
- End Init
- Begin InitComplete
- Start OnInitComplete(EventArgs e)
- End OnInitComplete(EventArgs e)
- End InitComplete
- Begin PreLoad
- Start OnPreLoad(EventArgs e)
- End OnPreLoad(EventArgs e)
- End PreLoad
- Begin Load
- Start OnLoad(EventArgs e)
- Page_Load(object sender, EventArgs e)
- End OnLoad(EventArgs e)
- Start OnLoad(EventArgs e)
- End Load
- Begin LoadComplete
- Start OnLoadComplete(EventArgs e)
- End OnLoadComplete(EventArgs e)
- End LoadComplete
- Begin PreRender
- Start EnsureChildControls()
- ResolveAdapter()
- Start CreateChildControls()
- End CreateChildControls()
- End EnsureChildControls()
- Start OnPreRender(EventArgs e)
- End OnPreRender(EventArgs e)
- Start EnsureChildControls()
- End PreRender
- Begin PreRenderComplete
- Start OnPreRenderComplete(EventArgs e)
- End OnPreRenderComplete(EventArgs e)
- End PreRenderComplete
- SaveViewState()
- Begin SaveState
- SaveViewState()
- HasControls()
- Start SavePageStateToPersistenceMedium(object state)
- ResolveAdapter()
- End SavePageStateToPersistenceMedium(object state)
- End SaveState
- Begin SaveStateComplete
- Start OnSaveStateComplete(EventArgs e)
- End OnSaveStateComplete(EventArgs e)
- End SaveStateComplete
- Begin Render
- CreateHtmlTextWriter(System.IO.TextWriter tw)
- Start RenderControl(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- Start RenderChildren(HtmlTextWriter writer)
- End RenderChildren(HtmlTextWriter writer)
- End Render(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- End RenderControl(HtmlTextWriter writer)
- End Render
- CreateHtmlTextWriter(System.IO.TextWriter tw)
ASP.Net 2.0 User Control Life Cycle
- Start Construct()
- End Construct()
- Start FrameworkInitialize()
- End FrameworkInitialize()
- ResolveAdapter()
- Start OnInit(EventArgs e)
- End OnInit(EventArgs e)
- Start TrackViewState()
- End TrackViewState()
- Start OnLoad(EventArgs e)
- Page_Load(object sender, EventArgs e)
- End OnLoad(EventArgs e)
- Start EnsureChildControls()
- ResolveAdapter()
- Start CreateChildControls()
- End CreateChildControls()
- End EnsureChildControls()
- Start OnPreRender(EventArgs e)
- End OnPreRender(EventArgs e)
- SaveViewState()
- SaveViewState()
- HasControls()
- Start RenderControl(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- Start RenderChildren(HtmlTextWriter writer)
- End RenderChildren(HtmlTextWriter writer)
- End Render(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- End RenderControl(HtmlTextWriter writer)
ASP.Net 2.0 Web Control Life Cycle
- Constructor Test()
- Start ApplyStyleSheetSkin(Page page)
- End ApplyStyleSheetSkin(Page page)
- ResolveAdapter()
- Start OnInit(EventArgs e)
- End OnInit(EventArgs e)
- Start TrackViewState()
- End TrackViewState()
- Start OnLoad(EventArgs e)
- End OnLoad(EventArgs e)
- Start EnsureChildControls()
- ResolveAdapter()
- Start CreateChildControls()
- End CreateChildControls()
- End EnsureChildControls()
- Start OnPreRender(EventArgs e)
- End OnPreRender(EventArgs e)
- SaveViewState()
- SaveViewState()
- HasControls()
- Start RenderControl(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- Start RenderBeginTag(HtmlTextWriter writer)
- Start AddAttributesToRender(HtmlTextWriter writer)
- End AddAttributesToRender(HtmlTextWriter writer)
- End RenderBeginTag(HtmlTextWriter writer)
- Start RenderBeginTag(HtmlTextWriter writer)
- Start RenderContents(HtmlTextWriter writer)
- Start RenderChildren(HtmlTextWriter writer)
- End RenderChildren(HtmlTextWriter writer)
- End RenderContents(HtmlTextWriter writer)
- Start RenderEndTag(HtmlTextWriter writer)
- End RenderEndTag(HtmlTextWriter writer)
- End Render(HtmlTextWriter writer)
- Start Render(HtmlTextWriter writer)
- End RenderControl(HtmlTextWriter writer)
Complete Trace | |||
---|---|---|---|
Category | Message | ||
Page | ResolveAdapter() | ||
Page | DeterminePostBackMode() | ||
aspx.page | Begin PreInit | ||
Page | Start OnPreInit(EventArgs e) | ||
Page | End OnPreInit(EventArgs e) | ||
MasterPage | Start Construct() | ||
MasterPage | End Construct() | ||
Page | HasControls() | ||
Page | Start RemovedControl(Control control) | ||
Page | End RemovedControl(Control control) | ||
MasterPage | Start FrameworkInitialize() | ||
MasterPage | End FrameworkInitialize() | ||
MasterPage | Start AddParsedSubObject(object obj) | ||
MasterPage | CreateControlCollection() | ||
MasterPage | Start AddedControl(Control control, int index) | ||
MasterPage | End AddedControl(Control control, int index) | ||
MasterPage | End AddParsedSubObject(object obj) | ||
MasterPage | Start AddParsedSubObject(object obj) | ||
MasterPage | Start AddedControl(Control control, int index) | ||
Page | ResolveAdapter() | ||
MasterPage | End AddedControl(Control control, int index) | ||
MasterPage | End AddParsedSubObject(object obj) | ||
MasterPage | Start AddParsedSubObject(object obj) | ||
MasterPage | Start AddedControl(Control control, int index) | ||
MasterPage | End AddedControl(Control control, int index) | ||
MasterPage | End AddParsedSubObject(object obj) | ||
UserControl | Start Construct() | ||
UserControl | End Construct() | ||
UserControl | Start FrameworkInitialize() | ||
UserControl | End FrameworkInitialize() | ||
CustomWebControl | Constructor Test() | ||
CustomWebControl | Start ApplyStyleSheetSkin(Page page) | ||
CustomWebControl | End ApplyStyleSheetSkin(Page page) | ||
MasterPage | Start AddParsedSubObject(object obj) | ||
MasterPage | Start AddedControl(Control control, int index) | ||
MasterPage | End AddedControl(Control control, int index) | ||
MasterPage | End AddParsedSubObject(object obj) | ||
MasterPage | Start AddParsedSubObject(object obj) | ||
MasterPage | Start AddedControl(Control control, int index) | ||
MasterPage | End AddedControl(Control control, int index) | ||
MasterPage | End AddParsedSubObject(object obj) | ||
Page | Start AddedControl(Control control, int index) | ||
Page | End AddedControl(Control control, int index) | ||
aspx.page | End PreInit | ||
aspx.page | Begin Init | ||
Page | ResolveAdapter() | ||
MasterPage | ResolveAdapter() | ||
UserControl | ResolveAdapter() | ||
UserControl | Start OnInit(EventArgs e) | ||
UserControl | End OnInit(EventArgs e) | ||
UserControl | Start TrackViewState() | ||
UserControl | End TrackViewState() | ||
CustomWebControl | ResolveAdapter() | ||
CustomWebControl | Start OnInit(EventArgs e) | ||
CustomWebControl | End OnInit(EventArgs e) | ||
CustomWebControl | Start TrackViewState() | ||
CustomWebControl | End TrackViewState() | ||
MasterPage | Start OnInit(EventArgs e) | ||
MasterPage | End OnInit(EventArgs e) | ||
MasterPage | Start TrackViewState() | ||
MasterPage | End TrackViewState() | ||
Page | Start OnInit(EventArgs e) | ||
Page | End OnInit(EventArgs e) | ||
Page | Start TrackViewState() | ||
Page | End TrackViewState() | ||
aspx.page | End Init | ||
aspx.page | Begin InitComplete | ||
Page | Start OnInitComplete(EventArgs e) | ||
Page | End OnInitComplete(EventArgs e) | ||
aspx.page | End InitComplete | ||
aspx.page | Begin PreLoad | ||
Page | Start OnPreLoad(EventArgs e) | ||
Page | End OnPreLoad(EventArgs e) | ||
aspx.page | End PreLoad | ||
aspx.page | Begin Load | ||
Page | Start OnLoad(EventArgs e) | ||
Page | Page_Load(object sender, EventArgs e) | ||
Page | End OnLoad(EventArgs e) | ||
MasterPage | Start OnLoad(EventArgs e) | ||
MasterPage | Page_Load(object sender, EventArgs e) | ||
MasterPage | End OnLoad(EventArgs e) | ||
UserControl | Start OnLoad(EventArgs e) | ||
UserControl | Page_Load(object sender, EventArgs e) | ||
UserControl | End OnLoad(EventArgs e) | ||
CustomWebControl | Start OnLoad(EventArgs e) | ||
CustomWebControl | End OnLoad(EventArgs e) | ||
aspx.page | End Load | ||
aspx.page | Begin LoadComplete | ||
Page | Start OnLoadComplete(EventArgs e) | ||
Page | End OnLoadComplete(EventArgs e) | ||
aspx.page | End LoadComplete | ||
aspx.page | Begin PreRender | ||
Page | Start EnsureChildControls() | ||
Page | ResolveAdapter() | ||
Page | Start CreateChildControls() | ||
Page | End CreateChildControls() | ||
Page | End EnsureChildControls() | ||
Page | Start OnPreRender(EventArgs e) | ||
Page | End OnPreRender(EventArgs e) | ||
MasterPage | Start EnsureChildControls() | ||
MasterPage | ResolveAdapter() | ||
MasterPage | Start CreateChildControls() | ||
MasterPage | End CreateChildControls() | ||
MasterPage | End EnsureChildControls() | ||
MasterPage | Start OnPreRender(EventArgs e) | ||
MasterPage | End OnPreRender(EventArgs e) | ||
UserControl | Start EnsureChildControls() | ||
UserControl | ResolveAdapter() | ||
UserControl | Start CreateChildControls() | ||
UserControl | End CreateChildControls() | ||
UserControl | End EnsureChildControls() | ||
UserControl | Start OnPreRender(EventArgs e) | ||
UserControl | End OnPreRender(EventArgs e) | ||
CustomWebControl | Start EnsureChildControls() | ||
CustomWebControl | ResolveAdapter() | ||
CustomWebControl | Start CreateChildControls() | ||
CustomWebControl | End CreateChildControls() | ||
CustomWebControl | End EnsureChildControls() | ||
CustomWebControl | Start OnPreRender(EventArgs e) | ||
CustomWebControl | End OnPreRender(EventArgs e) | ||
aspx.page | End PreRender | ||
aspx.page | Begin PreRenderComplete | ||
Page | Start OnPreRenderComplete(EventArgs e) | ||
Page | End OnPreRenderComplete(EventArgs e) | ||
aspx.page | End PreRenderComplete | ||
Page | SaveViewState() | ||
MasterPage | SaveViewState() | ||
UserControl | SaveViewState() | ||
CustomWebControl | SaveViewState() | ||
aspx.page | Begin SaveState | ||
Page | SaveViewState() | ||
Page | HasControls() | ||
MasterPage | SaveViewState() | ||
MasterPage | HasControls() | ||
UserControl | SaveViewState() | ||
UserControl | HasControls() | ||
CustomWebControl | SaveViewState() | ||
CustomWebControl | HasControls() | ||
Page | Start SavePageStateToPersistenceMedium(object state) | ||
Page | ResolveAdapter() | ||
Page | End SavePageStateToPersistenceMedium(object state) | ||
aspx.page | End SaveState | ||
aspx.page | Begin SaveStateComplete | ||
Page | Start OnSaveStateComplete(EventArgs e) | ||
Page | End OnSaveStateComplete(EventArgs e) | ||
aspx.page | End SaveStateComplete | ||
aspx.page | Begin Render | ||
Page | CreateHtmlTextWriter(System.IO.TextWriter tw) | ||
Page | Start RenderControl(HtmlTextWriter writer) | ||
Page | Start Render(HtmlTextWriter writer) | ||
Page | Start RenderChildren(HtmlTextWriter writer) | ||
MasterPage | Start RenderControl(HtmlTextWriter writer) | ||
MasterPage | Start Render(HtmlTextWriter writer) | ||
MasterPage | Start RenderChildren(HtmlTextWriter writer) | ||
UserControl | Start RenderControl(HtmlTextWriter writer) | ||
UserControl | Start Render(HtmlTextWriter writer) | ||
UserControl | Start RenderChildren(HtmlTextWriter writer) | ||
UserControl | End RenderChildren(HtmlTextWriter writer) | ||
UserControl | End Render(HtmlTextWriter writer) | ||
UserControl | End RenderControl(HtmlTextWriter writer) | ||
CustomWebControl | Start RenderControl(HtmlTextWriter writer) | ||
CustomWebControl | Start Render(HtmlTextWriter writer) | ||
CustomWebControl | Start RenderBeginTag(HtmlTextWriter writer) | ||
CustomWebControl | Start AddAttributesToRender(HtmlTextWriter writer) | ||
CustomWebControl | End AddAttributesToRender(HtmlTextWriter writer) | ||
CustomWebControl | End RenderBeginTag(HtmlTextWriter writer) | ||
CustomWebControl | Start RenderContents(HtmlTextWriter writer) | ||
CustomWebControl | Start RenderChildren(HtmlTextWriter writer) | ||
CustomWebControl | End RenderChildren(HtmlTextWriter writer) | ||
CustomWebControl | End RenderContents(HtmlTextWriter writer) | ||
CustomWebControl | Start RenderEndTag(HtmlTextWriter writer) | ||
CustomWebControl | End RenderEndTag(HtmlTextWriter writer) | ||
CustomWebControl | End Render(HtmlTextWriter writer) | ||
CustomWebControl | End RenderControl(HtmlTextWriter writer) | ||
MasterPage | End RenderChildren(HtmlTextWriter writer) | ||
MasterPage | End Render(HtmlTextWriter writer) | ||
MasterPage | End RenderControl(HtmlTextWriter writer) | ||
Page | End RenderChildren(HtmlTextWriter writer) | ||
Page | End Render(HtmlTextWriter writer) | ||
Page | End RenderControl(HtmlTextWriter writer) | ||
aspx.page | End Render | ||
Page | CreateHtmlTextWriter(System.IO.TextWriter tw) | Ref. |