2014-10-17 86 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上丢失。非常愚蠢,但无论如何我都明白了。