asp.net загружает данные обратной передачи и повышает взаимодействие между состояниями представления обратной передачи - PullRequest
1 голос
/ 18 июля 2011

Я читаю, чтобы получить лучшее представление о том, как viewstate работает в веб-формах asp.net, и читал эту статью.

Одна часть, которую я не совсем понимаюэто этап 5 - Повышение события обратной передачи, он говорит, что этот этап не использует никакой информации о состоянии представления для вызова событий (т. е. TextChanged).

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

Если это событие не взаимодействует с viewstate, как он может определить, изменилось ли значение или оно остается таким же, как и при предыдущей загрузке?

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Даниэль, вы правы в своем предположении - состояние просмотра используется для определения необходимости инициирования события, связанного с изменением. Это включает в себя такие вещи, как событие TextChanged в TextBox и событие SelectedIndexChanged в DropDownList, среди прочих.

Если вы еще не читали эту статью, я настоятельно рекомендую ее: Истинное понимание состояния просмотра . Это информативная статья Дейва Рида .

Спасибо!

0 голосов
/ 18 июля 2011

В случае событий TextChanged он смотрит на состояние просмотра, чтобы определить, поднято оно или нет - см. Ответ на вопрос 6215046 :


http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.ontextchanged.aspx

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

Попробуйте включить ViewState для TextBox.

...