2011-10-05 37 views
0

有人可以向我解釋ASP.NET頁面生命週期中方法和事件之間的區別嗎?ASP.NET頁面生命週期:方法vs事件

感謝

+0

MSDN有很好的細分:http://msdn.microsoft.com/en-us/library/ms178472.aspx#additional_page_life_cycle_considerations –

回答

1

當頁面運行一系列的方法被執行。這些方法反過來引發用戶可以處理的事件,以執行各種任務,如初始化控件,填充控件屬性,執行控件行爲代碼等。

這是一個很棒的MSDN流程圖,顯示了不同的方法執行,以及從這些方法引發的事件:

enter image description here

有關ASP.NET頁面生命週期的更多信息,請參閱MSDN上的完整概述:
http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

你可以完全覆蓋這些方法,但你也必須調用基方法。通過諸如Page_PreRender等事件,您不需要。那麼爲什麼要使用一個呢? – River

+0

大多數情況下,這些方法只是包裝事件調用,所以最終歸結爲是否需要在調用事件之前或之後執行您的工作。 –

0

PreInit -顧名思義,這個事件恰好發生在頁面初始化事件開始之前。 IsPostBack,IsCallback和IsCrossPagePostBack屬性在此階段設置。此事件允許我們動態設置Web應用程序的母版頁和主題。在使用動態控件時,PreInit被廣泛使用。

初始 -頁面Init,事件發生在Init事件之後,webform上所有單獨的控件。使用此事件來讀取或初始化控件屬性。服務器控件從Web窗體的視圖狀態加載並初始化。

InitComplete -顧名思義,這個事件會在頁面初始化後立即產生。

PreLoad -恰好在頁面加載事件之前發生。

加載 -頁面加載事件發生在該webform上所有單獨控件的加載事件之前。

控制事件 -頁面加載事件後,控件事件如按鈕的點擊,下拉列表的選定索引更改事件被引發。

加載完成 -處理控件事件後引發此事件。

PreRender - 此事件在頁面呈現階段之前引發。

PreRenderComplete -在PreRender事件之後立即引發。

卸載 -爲每個控件然後爲頁面提出。在這個階段,頁面從內存中卸載。