У меня есть вопрос, и это может быть потому, что я не понимаю, как работает viewstate.У меня есть некоторый код, который устанавливает переменную viewstate в установщике для свойства в пользовательском элементе управления, который я сделал.
public bool EditMode
{
get { return (bool)(ViewState["editMode" + this.ID] ?? false); }
set {ViewState["editMode" + this.ID] = value;}
}
Режим редактирования устанавливается во время события нажатия кнопки.
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" к элементу управления, затем к странице, использующей его, а затем к главной странице, не повезло.viewstate - это пустая коллекция (которая не имеет смысла, потому что она также сохраняет данные формы, которые сохраняются, как и должно).
Я ценю любую помощь.