服務(wù)熱線
153 8323 9821
八.保存ViewState(SaveViewState)
所有對(duì)頁面控件的修改完成后viewstate就被保存了。對(duì)像的狀態(tài)數(shù)據(jù)還是保留在隱藏的<input>控件里面,呈現(xiàn)給Html的對(duì)象狀態(tài)數(shù)據(jù)也是從這里取得的。在 SaveViewState事件中,其值能被保存到viewstate對(duì)象,然而這時(shí)在頁面上控件的修改卻不能了。你可以用SaveViewState來重載這一步,圖示如下:
|
|
|
|
| 九.呈遞給Html(Render) |
| 運(yùn)用Html創(chuàng)建給瀏覽器輸出的頁面的時(shí)候Render事件就發(fā)生了。在Render事件過程中,頁面調(diào)用其中的對(duì)象將它們呈遞給Html。然后,頁面就可以以Html的形式被用戶的瀏覽器訪問了。當(dāng)Render事件被重載時(shí),開發(fā)者可以編寫自定義的Html代碼使得原先生成的Html都無效而按照新的Html來組織頁面。Render方法將一個(gè)HtmlTextWriter對(duì)象作為參數(shù)并用它將Html在瀏覽器上以網(wǎng)頁的形式顯示。這時(shí)仍然可以做一些修改動(dòng)作,不過它們只是客戶端的一些變化而已了。你可以重載Render事件,圖示如下: |
|
|
|
|
| 十.銷毀對(duì)象(Page_UnLoad) |
| 在呈遞給Html完成后,所有的對(duì)象都應(yīng)被銷毀。在Dispose事件中,你應(yīng)該銷毀所有在建立這個(gè)頁面時(shí)創(chuàng)建的對(duì)象。這時(shí),所有的處理已經(jīng)完畢,所以銷毀任何剩下的對(duì)象都是不會(huì)產(chǎn)生錯(cuò)誤的,包括頁面對(duì)象。你可以重載Dispose事件。 |
| 全文總結(jié) |
以上就是Asp.net頁面生命周期中的幾個(gè)主要事件。每次我們請(qǐng)求一個(gè)Asp.net頁面時(shí),我們都經(jīng)歷著同樣的過程:從初始化對(duì)象到銷毀對(duì)象。通過了解Asp.net頁面的內(nèi)部運(yùn)行機(jī)制,我相信大家在編寫、調(diào)試代碼的時(shí)候會(huì)更加游刃有余的。不過整個(gè)頁面的生命周期的方法如下:
| 方法 | 活動(dòng) |
|
Constructor |
Always |
|
Construct |
Always |
|
TestDeviceFilter |
Always |
|
AddParsedSubObject |
Always |
|
DeterminePostBackMode |
Always |
|
OnPreInit |
Always |
|
LoadPersonalizationData |
Always |
|
InitializeThemes |
Always |
|
OnInit |
Always 相關(guān)文章
服務(wù)項(xiàng)目
|