我有一个问题,这可能是因为我不了解viewstate的工作方式。我有一些代码在setter中为我自定义控件中的属性设置了一个viewstate变量。ViewState不会在回发中保留自定义添加
public bool EditMode
{
get { return (bool)(ViewState["editMode" + this.ID] ?? false); }
set {ViewState["editMode" + this.ID] = value;}
}
editmode正在按钮单击事件期间设置。
public void shippingButton_Click(object sender, EventArgs e)
{
if (((Button)sender).CommandName== "Edit")
{
ctrlShippingAddress.EditMode = true;
}
else
{
Page.Validate();
if (Page.IsValid)
{
ctrlShippingAddress.SaveAddress();
ctrlShippingAddress.EditMode = false;
}
}
}
我已经尝试过手动的情况下,我没有加入这在页面周期正确的点的视图状态设置它在页面加载,但据我了解事件发生之前渲染。我也尝试添加ViewStateMode =“Enabled”到控件,然后到使用它的页面,然后到没有运气的母版页。
如果我在get/set的位置进行调试,我看到viewstate是一个空集合(这没有意义,因为它也保存了应该保留的表单数据)。
我很感激任何帮助。
与同事在检查之后,我发现,这个问题是在web配置的页面节点 需要设置为true(显然) –
您应该重新发布此评论作为答案,然后接受它,所以如果有人在将来发现此问题,他们也会发现一个明确标记回答。 – Jeff