2010-08-20 50 views
1

我有一個Web窗體頁面Default.aspx,它從我創建的BasePage類繼承,而後者繼而從System.Web.UI.Page繼承。非常常見的設置。我可以使用BasePage中的Page.IsPostBack嗎?

Default : BasePage : System.Web.UI.Page 

BasePage.BasePage()(構造函數),我想要做的東西,如果我們沒有做回發。所以,我把標準

if(!Page.IsPostBack) 
{ 
    // do stuff here 
} 

然而,Page.IsPostBack總是返回false,即使我真的回發。

那麼我的問題是,這僅僅是BasePage無法在頁面級上看到IsPostBack變量的限制嗎?

還是有一個額外的片斷我失蹤像我必須說HttpContext.Current.Request而不是在頁面級別上Request

回答

5

不要把它放在構造函數中。 IsPostBack值在PreInit到Load的生命週期事件中有效。

+0

我明白了。進一步查看你的答案,我在http://msdn.microsoft.com/en-us/library/ms178472.aspx找到了一個生命週期圖表,它有幫助,似乎支持你說的話,直到IsPostBack變得可用。我需要在Page_PreInit部分中設置一些變量,所以我需要將所有代碼放在那裏,或者只是提供不需要IsPostBack的變量。謝謝你的幫助。 – Chad 2010-08-20 19:48:03

相關問題