Viewstate не работает для флажка - PullRequest
0 голосов
/ 17 января 2012

Я в следующей ситуации. Одна страница aspx с одним ascx внутри, которая содержит флажок. На странице aspx у меня есть EnableViewState = true и ViewStateMode=disabled. Затем для каждого элемента управления, которому необходимо состояние просмотра, я переопределяю ViewStateMode=Enabled. В ascx также включен ViewStateMode также для обозначения на странице aspx, но также и в заголовке страницы ascx. Также флажок имеет это установлено. Однако при нажатии не запускается событие selected_changed. Он отправляет обратно, потому что имеет Auto-postback=true, но не запускает событие.

Если на главной странице aspx я установил ViewStateMode, то это работает. Но я не могу понять, почему это не отменяет ...

Ответы [ 2 ]

1 голос
/ 17 января 2012

Хорошо, я взгляну на свойство Control.ViewStateMode в документации MSDN.

Обратите внимание на:

ViewStateModeсвойство страницы или элемента управления действует только в том случае, если для свойства EnableViewState установлено значение true .Если для свойства EnableViewState установлено значение false, состояние просмотра будет отключено, даже если для свойства ViewStateMode установлено значение «Включено».

Поэтому правильный способ обработки ViewState заключается в следующем:

  • оставить EnableViewState = "true" (по умолчанию) везде
  • ViewStateMode = "false"главная страницаТаким образом, каждая производная страница и элемент управления наследуют ViewStateMode и не выводят viewstate в html
  • , чтобы включить viewstate только для флажка, установив ViewStateMode = "true"
0 голосов
/ 17 января 2012

Убедитесь, что вы включаете или выключаете свое состояние просмотра как можно скорее -> Init или InitComplete.

...