我在我的页面中使用 devexpress 控件,但这不是问题。
下面是发生的情况,我在页面中创建了一个仅使用 get 的属性,该属性将从 ViewState 中检索查询字符串值。我将值存储在页面加载事件的 ViewState 中,该事件包含在 !IsPostBack 中。在我存储注意后,我已经在我的母版页上放置了一个更新面板。我搜索了网络,发现 ViewState 值从不存储在回调中,我不知道是不是这个原因。这是我的代码:
public partial class _Default : BasePage
{
private Int64 RequestId
{
get
{
return (Int64.Parse(ViewState["RequestId"].ToString()));
}
}
protected override void Page_Load(object sender, EventArgs e)
{
//Check for security
base.Page_Load(sender, e);
if (!IsPostBack)
{
GetQueryString();
gridBind();
}
}
private void GetQueryString()
{
string requestId = this.Request.QueryString["RID"];
if(!String.IsNullOrEmpty(requestId))
ViewState["RequestId"] = Int64.Parse(this.Server.UrlDecode(requestId))
else
ViewState["RequestId"] = 0;
}
}
我编辑了这个问题,我遇到的第一个问题是由于 IE7 的愚蠢,但是每次回发后的 ViewState 都是空的。我尝试使用 EnableViewState 但它始终为空。在我的解决方案中使用的任何页面都是一样的。我们根本不能使用 ViewStates。肯定有问题。