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