页面装载用户控件时的事件顺序

在WebForm1页面上直接放置用户控件WebUserControl1时的事件顺序:
WebUserControl1_Init
WebForm1_Init
Page_Load
WebUserControl1_Load
WebForm1_PreRender
WebUserControl1_PreRender
WebUserControl1_Unload
WebForm1_Unload


在WebForm1页面的OnInit方法中用代码Load用户控件WebUserControl1时的事件顺序:
WebForm1_Init : OnInit
WebForm1: Loading controls
WebUserControl1_Init : OnInit
WebForm1: added to Controls
WebForm1: LoadViewState
WebUserControl1: LoadViewState
WebUserControl1: LoadPostData Begin
WebUserControl1: LoadPostData End
WebForm1_PageLoad: OnLoad after base's Onload.
WebUserControl1_Load: after base's OnLoad
iWebUserControl1: RaisePostDataChange
WebForm1: OnPreRender
WebUserControl1: OnPreRender
WebForm1: SavedViewState
WebUserControl1: SaveViewState

在WebForm1页面的Page_Load方法中用代码Load用户控件WebUserControl1时的事件顺序:
WebForm1_Init : OnInit
WebForm1: LoadViewState
WebForm1_PageLoad: OnLoad after base's Onload.
WebForm1: Loading controls
WebUserControl1_Init : OnInit
WebUserControl1: LoadViewState
WebForm1: added to Controls
WebUserControl1_Load: after base's OnLoad
WebUserControl1: LoadPostData Begin
WebUserControl1: LoadPostData End
iWebUserControl1: RaisePostDataChange
WebForm1: OnPreRender
WebUserControl1: OnPreRender
WebForm1: SavedViewState
WebUserControl1: SaveViewState

在WebForm1页面的Button1_Click事件中用代码Load用户控件WebUserControl1时的事件顺序:
WebForm1_Init
Page_Load
Button1_Click
WebUserControl1_Init
WebUserControl1_Load
WebForm1_PreRender
WebUserControl1_PreRender
WebUserControl1_Unload
WebForm1_Unload


在WebForm1页面的Page_Load事件中用代码Load用户控件WebUserControl1,WebUserControl1又在Page_Load事件中用代码Load用户控件WebUserControl2时的事件顺序:
WebForm1_Init
Page_Load
WebUserControl1_Init
WebUserControl1_Load
WebUserControl2_Init
WebUserControl2_Load
WebForm1_PreRender
WebUserControl1_PreRender
WebUserControl2_PreRender
WebUserControl2_Unload
WebUserControl1_Unload
WebForm1_Unload

原文地址:https://www.cnblogs.com/SALIN/p/1317948.html