2009-06-02 24 views
2

ASP.Net Page Lifecycle article on MSDN爲什麼在ASP.Net頁面循環中,子控件中的某些事件以相反的順序觸發?

雖然這兩個初始化和負載上的每個控制遞歸發生,它們發生在相反的順序。每個子控件的Init事件(以及Unload事件)都會在爲其容器引發相應事件(自下而上)之前發生。但是,容器的Load事件發生在其子控件的加載事件(自上而下)之前。

這對於unload事件有很大的意義,但爲什麼對於init?其他事件呢?

親切的問候,

回答

5

這是因爲如何創建這些頁面 - 用戶控件的頁面的類的屬性。它們在類被初始化時被創建(並因此被初始化),這確保了它們的實例在構造函數和頁面的init事件期間可用。

然後,當加載,預渲染和渲染事件發生時,頁面的事件首先觸發事件,並將其中的所有事件級聯。

當卸載和處理來到屬性對象時,再次處理。

WebForm頁面事件模型有點太複雜了,恕我直言。

相關問題