ASP.Net Wizard - Как очистить содержимое веб-элементов управления - PullRequest
0 голосов
/ 07 мая 2009

У меня есть элемент управления ASP.NET, в котором я возвращаюсь, wiz.MoveTo(wiz.WizardSteps[0]), к первому шагу мастера в обработчике событий FinishButtonClick.

Затем я также хочу очистить все содержимое для всех элементов управления в шагах?

Проблема в том, что из-за viewstate элементы управления в шагах мастера запоминают их значения из предыдущего представления?

Я не могу использовать enableviewstate = false для элементов управления, поскольку они должны иметь возможность запоминать свое состояние (назад и вперед) между шагами?

Какой самый простой способ очистить состояние просмотра всех элементов управления только при возникновении события FinishButtonClick?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 мая 2009

Есть что-нибудь, что не должно быть очищено? Если нет, то простейшим решением, вероятно, является перенаправление в обработчик события click, чтобы все было переинициализировано.

1 голос
/ 07 мая 2009

решаемая. Также узнал что-то новое о сфере действия ViewState в процессе ...

ViewState не несет ответственности за хранение измененных значений для таких элементов управления, как TextBoxes, DropDowns, CheckBoxes и т. Д. Эти элементы управления наследуются от интерфейса IPostBackDataHandler. Событие LoadPostBackData возникает в жизненном цикле страницы, в котором ЗНАЧЕНИЯ элементов управления загружаются из заголовков HTTP POST формы ... которые повторно отправляются клиентом ...

Итак, как уничтожить заголовки HTTP POST, чтобы очистить контрольные значения?

Новый запрос приводит к новым заголовкам HTTP POST ... Поэтому я просто делаю это в обработчике событий FinishButtonClick:

HttpContext.Current.Response.Redirect(Page.Request.Url.ToString());

Это дает дополнительное преимущество, так как оно переходит к шагу 1 мастера, поэтому мне также не нужно делать ... wiz.MoveTo(wiz.WizardSteps[0]).

Надеюсь, это поможет кому-то с такой же проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...