2011-02-01 55 views
1

我有下面的代碼母版頁:將數據加載到會話:它會在那裏

protected void Page_Init(object sender, EventArgs e) 
{ 
    if (Session["SessionUserPreferences"] == null) 
    { 
     MyHelper.LoadInitialUserData(6); 
    } 
} 

在背後說我的代碼,我使用了一些在SessionUserPreferences加載的數據顯示在頁面Page_Load事件。主頁面的Page_Init事件出現在aspx頁面的Page_load事件之前,因此理論上講,當我到達代碼後面時,數據應該在會話中。但是,情況總是如此嗎?從數據庫加載數據所需的時間是否會大於Page_load事件觸發的時間?我正在使用InProc會話。

謝謝。

回答

3

Page_Load不會執行,直到Page_Init完成。儘管如此,你仍然應該檢查它是否在Page_Load中爲null。

+0

好的,謝謝你的回答。問題:如果Page_Init有無限循環會發生什麼? Page_Load從不開火,是這樣嗎? – frenchie 2011-02-02 00:55:58

2

僅供參考,事件的順序MSDN X

因此,要回答你的問題: 如果母版頁的init事件被解僱,然後在文章中所描述的主機和兒童事件的其餘部分將觸發按順序以上鍊接...