轉帖|其它|編輯:郝浩|2010-05-24 11:31:33.000|閱讀 922 次
概述:本文介紹了asp.net控件生命周期內的執行步驟
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
asp.net控件在生命周期中將執行一系列措置步驟,這些步驟包括:
實例化(Instantiate)
控件被頁面或另一個控件經由調用它的結構器所實例化。這個步驟之后所列出的階段,僅當控件介入控件樹中才會發生發火。
初始化(Initialize)
初始化在傳入 Web 央求生命周期內所需的設置。在此階段,控件樹中的頁面和悉數控件經由默許體式格局來調用OnInit辦法。開辟人員能夠經由重載OnInit辦法,為控件供應初始化邏輯。在其生命周期的這個時分,控件能夠安全地接見其置于Controls匯合中的子控件,然則它不能接見控件層次中的父控件或其他層次更高的控件(如頁面)
劈頭跟蹤視圖狀況(Begin Tracking View State)
這個階段發生發火在初始化階段的末尾。在此階段頁面主動調用TrackViewState辦法。TrackViewState辦法保證在此階段之后,運用ViewState字典屬性而發生的改變保管在控件視圖狀況中。在大多半狀況下,Control基類供應的TrackViewState辦法完成曾經足夠了,只需在控件定義了復雜屬性時,才必需重載TrackViewState辦法。
加載視圖狀況(僅用于回傳過程)(Load View State (postback only))
這個階段發生發火在回傳時,而不是初始央求過程中,在此階段終了時,就會主動填充控件的 ViewState 屬性控件能夠重寫 LoadViewState 辦法的默許完成,以自定義狀況恢復。
加載回傳數據(僅用于回傳過程,為可選項)(Load Postback Data(postback only, optional))
只需在控件經由完成IPostBackDataHandler接口介入了回傳數據措置時,這個階段才發生發火在回傳中。TextBox控件就是一個例子。在這個階段中,控件必需從已發送的表單數據中,經由完成IPostBackDataHandler借口的LoadPostData辦法更新其狀況。
加載(Load)
直到此階段劈頭,控件樹中的一切控件都已被初始化,并恢復到它們在先前周期最后的狀況。OnLoad辦法會執行一切央求共有的操作,如設置數據庫查詢。此時,樹中的效勞器控件已創建并初始化、狀況已恢復而且窗體控件反映了客戶端的數據。假如需求完成僅在頁面初始央求中執行的邏輯,那么完成該邏輯時,應該搜檢頁面的IsPostBack屬性
激發修正工作(僅用于回傳過程,為可選項)(Raise Changed Events(postback only, optional))
只需在控件經由完成IPostBackDataHandler接口介入了回傳數據措置時,這個階段才發生發火在回傳中。在此階段中,控件經由激發工作(如TextBox的TextChanged工作)作為一種旗子燈號-----其狀況因為回傳而改動(激發更改工作以響該當前和以前回發之間的狀況更改)。為了介入此階段,控件必需完成IPostBackDataHandler接口的RaisePostDataChangedEvent辦法。
激發還傳工作(僅用于回傳過程,為可選項)(Raise Postback Events(postback only, optional))
只需在控件經由完成IPostBackEventHandler接口介入了回傳數據措置時,這個階段才發生發火在回傳中。在此階段能夠經由完成IPostBackEventHandler接口的RaisePostBackEvent辦法來完成邏輯,以便把客戶端工作映射到效勞器端工作。
預生成(PreRender)
在此階段中,應該經由重載OnPreRender辦法,執行在生成控件之前所需求的任何工作。在生成輸出之前執行任何更新,能夠保管在預生成階段對控件狀況所做的更改,而在生成階段所對應的更改則會損失。
保管視圖狀況(Save View State)
假如控件不維持狀況,或者它為保管其一切狀況信息而運用ViewState字典,那么不用在此階段時代完成任何附加邏輯。在此階段時代,頁面框架會主動保管ViewState字典。假如需求自定義狀況治理,必需經由重載SaveViewState辦法來完成自定義狀況恢復,這種辦法只被EnableViewState屬性為true的控件所調用。在此階段往后任何控件的改動都不會保管在控件的視圖狀況中。
生成(Render)
經由這種辦法,控件在輸出流上經由重載Control的Render辦法或WebControl類的rendering辦法中的一種,來寫標志文本。
卸載(Unload)
在此階段中,頁面經由完成Page_Unload辦法,來執行肅清工作。作為控件開辟者,應該重載Dispose辦法來執行肅清。
釋放(Dispose)
在此階段,應該重載Dispose辦法來釋放控件所占的悉數資本。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:互聯網