2014-10-17 85 views
0

當按下按鈕試圖讓DevExpress ASPxPopupControl顯示時,就會出現此問題。使用popup.ShowOnPageLoad = true;似乎不夠,檢查Page_Load上的值表明它將恢復爲false,即使服務器上的代碼已確實執行。Page_Load上的HiddenField空和ViewState值null

因此,我決定有一個變量,讀取和寫入ViewState,所以它仍然存在。然後我有變量:

bool ShowPopup 
{ 
    get 
    { 
     if (ViewState["ShowPopup"] == null) 
      return false; 
     return (bool)ViewState["ShowPopup"]; 
    } 
    set 
    { 
     ViewState["ShowPopup"] = value; 
    } 
} 

哪個只是按下按鈕上調用ShowPopup = true。當在Page_Load中使用popup.ShowOnPageLoad = ShowPopup;時,ViewState["ShowPopup"]null,因此它返回false。我試着用HiddenField。所以我改變ShowPopup到:

bool ShowPopup 
{ 
    get 
    { 
     return hfShowPopup.Value != "" && hfShowPopup.Value.ToLower() != "false"; 
    } 
    set 
    { 
     hfShowPopup.Value = value.ToString(); 
    } 
} 

再次使用ShowPopup = true上按一下按鈕,當ShowPopupPage_Load其值讀的是""又一次因此ShowPopupfalse

我又試圖直接通過hfShowPopup.Value = "true";設置HiddenField,並使用

popupDuplicatePlayer.ShowOnPageLoad = hfShowPopup.Value != "" && hfShowPopup.Value.ToLower() != "false"; 

Page_Load,但同樣hfShowPopup.Value是空的。

我已經使用了一些其他變量讀取/寫入ViewState在同一頁面,他們工作正常。我知道ViewStateHiddenField可能不會在頁面生命週期的早期存在,但在Page_Load中使用了,所以應該沒問題?我也嘗試在Page_LoadComplete中訪問它們,但也遇到了相同的問題。頁面上沒有UpdatePanel s,所以這不是問題,是否有其他原因?

我會假設,與ViewStateHiddenFieldShowOnPageLoad問題被直接設置有關係嗎?

+0

隱藏字段的標記是什麼? – FJT 2014-10-20 12:25:57

+0

隱藏字段是簡單的asp.net控件''呈現爲' – anothershrubery 2014-10-20 21:37:43

回答

0

對我來說很愚蠢的錯誤。在按鈕按下我重定向到當前頁面,而不是允許回發。因此這些值在Page_Load上丟失。非常愚蠢,但無論如何我都明白了。