Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > EnableViewState


Автор: priest08 28.10.2010, 12:37
Цитата из MSDN:
Веб-приложение является приложением с неопределенным состоянием.Новый экземпляр класса веб-страницы создается при каждом запросе страницы у сервера.Как правило, это означает, что все данные на странице и в ее элементах управления будут потеряны при каждом цикле обработки.Например, по умолчанию, если пользователь вводит сведения в текстовое поле на веб-странице HTML, эти данные отправляются на сервер.Однако данные не возвращаются браузеру в ответе.

Вопрос: как этого добиться?????
Делаю пустой website, там textbox и button. Запускаю, меняю текст в textbox'е и нажимаю на button. Текст не исчезает (по умолчанию при создании страницы textbox был пустой). И как бы я не игрался с EnableViewState (элемента, страницы, еще чего) - ничего не меняется. Значения textbox'а не возвращаются к тем, что были при создании страницы.
Просто не понимаю, в чем дело?

Автор: priest08 29.10.2010, 13:28
В общем сам нашел ответ:

текст бокс сам по себе инпут, и передается на сервер сам по себе. отсюда и кажущееся сохранение стейта. хоть текст бокс и хранит текст во вьюстейте, но ему это нужно для того чтобы уметь инициировать событие OnChange, а не для того чтобы востановить это значение.


текст бокс реализует IPostBackDataHandler. смысл этого интерфейса в том что контрол получает какие то данные от постбека. в случае текстбокса это Текст.
то что там значение есть — это не старое сохраненное значение — это новое значение, оно взялось не из вьюстейта, а пришло отдельным параметром с POST запросом

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)