我有一個問題,這可能是因爲我不瞭解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