在頁生命週期的每個階段中,頁將引發可運行您自己的代碼進行處理的事件。對於控制項事件,通過以聲明方式使用屬性(如 onclick)或以使用代碼的方式,均可將事件處理常式綁定到事件。
頁還支援自動事件串連,即,ASP.NET 將尋找具有特定名稱的方法,並在引發特定事件時自動運行這些方法。如果 @ Page 指令的 AutoEventWireup 屬性設定為 true(或者如果未定義該屬性,因為預設情況下為 true),頁事件將自動綁定至使用 Page_event 命名規範的方法,如 Page_Load 和 Page_Init。有關自動事件串連的更多資訊,請參見 ASP.NET Web 伺服器控制項事件模型。
下表列出了最常用的頁生命週期事件。實際的事件比列出的事件要多。但是,它們不用於大多數頁處理方案。而是主要由 ASP.NET 網頁上的伺服器控制項使用,以初始化和呈現它們本身。如果要編寫自己的 ASP.NET 伺服器控制項,則需要詳細瞭解這些階段。有關建立自訂控制項的資訊,請參見開發自訂 ASP.NET 伺服器控制項。
頁事件 |
典型使用 |
Page_PreInit |
·使用 IsPostBack 屬性確定是否是第一次處理該頁。 ·建立或重新建立動態控制項。 ·動態設定主控頁。 ·動態設定 Theme 屬性。 ·讀取或設定設定檔屬性值。 注意:如果請求是回傳請求,則控制項的值尚未從檢視狀態還原。如果在此階段設定控制項屬性,則其值可能會在下一階段被改寫。 |
Page_Init |
·讀取或初始化控制項屬性。 |
Page_Load |
·讀取和更新控制項屬性。 |
Control events |
執行特定於應用程式的處理: ·如果頁包含驗證程式控制項,請在執行任何處理之前檢查頁和各個驗證控制項的 IsValid 屬性。 ·處理特定事件,如 Button 控制項的 Click 事件。 |
Page_PreRender |
·對頁的內容進行最後更改。 |
Page_Unload |
執行最後的清理工作,可能包括: ·關閉開啟的檔案和資料庫連接。 ·完成日誌記錄或其他特定於請求的任務。 注意:在卸載階段,頁及其控制項已被呈現,因此無法對響應流做進一步更改。如果嘗試調用方法(如 Response.Write 方法),則該頁將引發異常。 |