ASP.Net 頁面生命週期

1.頁面生命週期的主要階段包括: 階段 事件/方法  數據庫

頁面初始化          Page_Init  
加載View State      LoadViewState   
回發數據處理      LoadPostData   
頁面加載          Page_Load   
回發通知          RaisePostDataChangedEvent  
回發事件處理     RaisePostBackEvent  
頁面預渲染       Page_PreRender   
保存             viewstate SaveViewState   
Page渲染         Page_Render   
Page 卸載       Page_UnLoad  瀏覽器

2.頁面生命週期的主要事件:post

PreInit:ui

1.檢查IsPostBack 屬性this

2.動態設置Master Pagespa

3.動態設置Theme日誌

4.設置控件的默認值(UniqueId等)對象

5.從新建立動態控件(初始化控件),初始化控件的值遞歸

Init: 這個事件發生在全部的控件被初始化,全部的皮膚設置被應用之後。它用來讀取或者初始化控件屬性。它可以用來註冊一些aspx頁面中沒有指出的控件的事件。生命週期

InitComplete: Use this event for processing tasks that require all initialization to be complete.

PreLoad: 加載頁面的ViewState和全部的控件,而後處理全部的包含在Request實例中的postback數據。

Load: 這個事件多是你們最熟悉的了。須要注意的是,Page對象會遞歸的調用子控件的onload事件直到頁面和全部的子控件被加載完成。這個事件主要用來設置控件屬性的值,創建數據庫鏈接(一般不這麼作)。

Validation: 若是你的控件要求驗證,驗證會在這個階段發生,這個時候你能夠檢查控件的IsValid屬性。跟這個階段關聯的事件是Validate,它有一個能夠接受驗證字符串羣的重載方法(overload method),這個重載方法執行特定控件羣的驗證。

Control events: 這個就很少說了,主要是處理控件的事件,例如click。這也就讓咱們明白了每次咱們click一個Button的時候,其實是要先去執行load事件而後才執行click事件的,通常咱們用!IsPostBack來判斷一下從而避免執行沒必要要的加載邏輯。

LoadComplete: 頁面全部的控件都被加載之後執行,暫時沒有想到用來幹什麼。。。

PreRender: 在HTML被生成以前這是最後一個事件。每個頁面中的控件都有PreRender的過程。在這裏對將要輸出的HTML結果進行最後一次修改。

SaveStateComplete: 在這個時間發生以前,已經保存了全部控件和頁面的,任何對page或者控件的改動都不會產生左右。暫時沒想到用來幹啥。

Render: 它不是一個事件而是一個方法。工做就是把HTML寫回客戶端瀏覽器。

UnLoad: 頁面中的每個控件都會發生這件事。在控件中,使用這個事件來作清理工做,例如關閉數據庫鏈接等。對與頁面自己也是作清理工做,例如關閉打開的文件和數據庫鏈接,或者結束日誌或者其它指定的工做。

須要說明的是,每次Request都會建立一個全新的Page類的實例,因此在頁面中的本身定義的字段是不能在兩次request中傳遞值的,須要使用viewstate來存儲。

相關文章
相關標籤/搜索