当按下按钮试图让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
上按一下按钮,当ShowPopup
在Page_Load
其值读的是""
又一次因此ShowPopup
是false
。
我又试图直接通过hfShowPopup.Value = "true";
设置HiddenField
,并使用
popupDuplicatePlayer.ShowOnPageLoad = hfShowPopup.Value != "" && hfShowPopup.Value.ToLower() != "false";
在Page_Load
,但同样hfShowPopup.Value
是空的。
我已经使用了一些其他变量读取/写入ViewState
在同一页面,他们工作正常。我知道ViewState
和HiddenField
可能不会在页面生命周期的早期存在,但在Page_Load
中使用了,所以应该没问题?我也尝试在Page_LoadComplete
中访问它们,但也遇到了相同的问题。页面上没有UpdatePanel
s,所以这不是问题,是否有其他原因?
我会假设,与ViewState
,HiddenField
和的ShowOnPageLoad
问题被直接设置有关系吗?
隐藏字段的标记是什么? – FJT 2014-10-20 12:25:57
隐藏字段是简单的asp.net控件' '呈现为' –
anothershrubery
2014-10-20 21:37:43