asp.NET自訂伺服器控制項內部細節系列教程二

來源:互聯網
上載者:User

如大家要轉載,請保留本人的著作權:
/*
*Description:asp.NET自訂伺服器控制項內部細節系列教程
*Auther:崇崇-天真的好藍
*MSN:chongchong2008@msn.com
*Dates:2007-05-20
*Copyright:ChongChong2008 YiChang HuBei China
*/

二 控制項的生命週期
   控制項的生命週期決定何時儲存控制項和恢複它的狀態,何時與頁面及其它控制項之間進行互動,何時執行主要的處理邏輯,以及何時對輸出資料流顯示標記文本。

----------------------------------------
+ 執行個體化:構造器      
----------------------------------------
----------------------------------------
+ 初始化:OnInit方法和Init事件       
----------------------------------------
----------------------------------------
+ 開始跟蹤檢視狀態:TraceViewState 方法     
----------------------------------------

 |只回傳時發生
 -------------------------------------------------------
 ++ 開始跟蹤檢視狀態:TraceViewState 方法     
 -------------------------------------------------------
 -------------------------------------------------------
 ++ 載入回傳資料:IPostBackDataHandler.LoadPostdata 方法     
 -------------------------------------------------------

----------------------------------------
+ 載入:OnLoad方法和Load事件    
----------------------------------------

 |只回傳時發生
 -------------------------------------------------------------------
 ++ 引發修改事件:IPostBackDataHandler.RaisePostDataChangedEvent方法     
 -------------------------------------------------------------------
 -------------------------------------------------------------------
 ++ 引發回傳事件:IPostBackEventHandler.RaisePostBackEvent方法     
 -------------------------------------------------------------------

----------------------------------------
+ 預產生:OnPreRender方法和PreRender事件    
----------------------------------------
----------------------------------------
+ 儲存檢視狀態:SaveViewState方法 
----------------------------------------
----------------------------------------
+ 產生:Render方法 
----------------------------------------
----------------------------------------
+ 卸載:OnUnload方法和Unload事件
----------------------------------------
----------------------------------------
+ 釋放:Dispose方法
----------------------------------------

    初始化階段的末尾,頁面自動調用控制項的TraceViewState方法,TraceViewState方法保證在此階段之後,使用ViewState字典屬性而產生的變化儲存在控制項圖狀態中。

    載入檢視狀態發生在回傳時,而不是初始請求過程中,在此階段中,控制項必須把其狀態恢複到它在處理先前的請求結束的情況,頁面架構自動回復ViewState字典。如果控制項需要自訂狀態管理,必須通過重載LoadViewState方法來實現自訂的狀態恢複。

    載入回傳資料和引發修改事件階段,只在控制項通過現實IPostBackDataHandler介面參與了回傳資料處理時,這個階段才發生在回傳中。

    引發回傳事件階段只在控制項通過現實IPostBackEventHandler介面參與了回傳事件處理時,此階段才發生在回傳中。可以通過實現IPostBackEventHandler介面的RaisePostBackEvent方法來實現邏輯,以便把用戶端事件映射到伺服器端事件。

    預產生階段,應該通過重載OnPreRender方法,執行在產生控制項之前所需要的任何工作,如註冊用戶端指令碼。

 實現自己的伺服器事件和回傳機制
    儲存檢視狀態階段,如果控制項不維持狀態或它為儲存狀態資訊而使用ViewState字典,那麼不必再此階段實現任何邏輯,頁面架構自動儲存ViewState字典。如果控制項需要自訂的狀態管理,必須通過重載SaveVeiwState方法來實現自訂狀態的恢複。在此階段以後任何控制項的改變都不會儲存在控制項檢視狀態中。

    產生階段,控制項在輸出資料流上通過重載Control的Render方法或WebControl的Rendering方法中的一種,來書寫標記文本。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.