關於用戶自定義控件動態生成控件以及事件問題

用戶控件A,動態生成一個Button 而後爲Button綁定一個事件,觸發流程過程html

 

Page->Page_Load->A_Load(能夠加載Button樣式和事件)->A_OnPreRender(只能在第一次加載時觸發,用於加載樣式和數據,不能加載事件,若是加載過就不再加載)服務器

 

一、OnPreInit:當框架調用該方法時,引起PreInit事件。在該事件中主要是應用App_Themes中的主題,與應用母版頁,一般這一步咱們不須要作什麼框架

二、OnInit: 在這一步中,框架將初始化該頁面所應用到得控件,而後將應用的Themes應用給控件,遞歸的觸發子控件的Init方法。htm

三、OnInitComplete:這是一個標誌事件,他的調用標示這初始化完成,全部子控件均已經初始化完畢,因此Themes都已經應用。遞歸

四、OnPreLoad:該事件標誌着頁面進入加載狀態,在該事件中,框架會爲自身和全部控件加載視圖狀態,而後會處理Request實例包含全部回發數據。生命週期

五、OnLoad:Load事件是咱們一般運用最平凡的事件,也就是Page_Load事件,Page_xxx是全部時間的一種時間連接形式,如Page_Init將調用OnInit方法。這個事件中能夠處理回發,因爲視圖狀態,Themes,子控件都已經初始化完畢,因此便於咱們添加邏輯而沒必要擔憂被其餘事件把值給覆蓋掉。值得注意的是,任何頁面的Load順序是先本身,再子控件,如:一個aspx頁面被調用Load事件,先加載自己,而後再加載如母版頁、用戶控件、第三方服務器控件等。事件

六、OnLoadComplete:標誌着全部控件的加載完成。下一步則是將加載內容進行呈現。input

七、OnPreRender:該事件處理準備呈現的一些工做,如,對設置了DataSource的控件進行DataBind,一般,咱們能夠在這個事件上動態修改某些控件的值。it

八、OnPreRenderComplete:該事件標誌着準備呈現完成,數據已經完成綁定。序列化

9:SaveViewState:該事件中,將序列化ViewState,而後再頁面中以一個input:hidden的元素保存試圖狀態。

10:Render:在這個階段,框架會調用全部控件的Render方法,進行頁面呈現。以生產html頁。

11:Unload:在頁面生命週期結束後,進行卸載。

 

 

愚見,可能不對。等有時間再完善

相關文章
相關標籤/搜索