ASP.NET 主版和內容頁面中的事件
更新:2007 年 11 月
主版頁面 (Master Page) 和內容頁面都可以包含控制項的事件處理常式。對控制項而言,事件都是在本機處理—內容頁面中的控制項會在內容頁面中引發事件,而主版頁面中的控制項會在主版頁面中引發事件。內容頁面的控制項事件並不會傳送到主版頁面。同樣地,您也無法在內容頁面中處理主版頁面控制項的事件。
在某些情況中,內容頁面和主版頁面中會引發相同的事件。例如,這兩種頁面都會引發 Init 和 Load 事件。事件引發方式的一般規則是,初始化事件的引發順序是從最內層控制項到最外層控制項,而所有其他事件的引發順序都是從最外層控制項到最內層控制項。隨時記住下列這一點,將對您很有幫助:主版頁面會合併到內容頁面中,因此會視為內容頁面中的控制項。
下列是當主版頁面與內容頁面合併時,事件的發生順序:
主版頁面控制項 Init 事件。
內容控制項 Init 事件。
主版頁面 Init 事件。
內容頁面 Init 事件。
內容頁面 Load 事件。
主版頁面 Load 事件。
內容控制項 Load 事件。
內容頁面 PreRender 事件。
主版頁面 PreRender 事件。
主版頁面控制項 PreRender 事件。
內容控制項 PreRender 事件。
如果您是頁面開發人員,則主版頁面和內容頁面中的事件順序對您而言通常是不重要的。不過,如果您正在建立事件處理常式,而且這些處理常式需要使用某些控制項,則瞭解主版頁面和內容頁面中的事件順序是很有幫助的。