我在我的页面中使用了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都是null。我试图使用EnableViewState但它总是为null。我在我的解决方案中使用的任何页面都是一样的。我们根本无法使用ViewStates。绝对有问题。