ASP.NET Dropdown - работает, когда MasterPage EnableViewState = true - PullRequest
2 голосов
/ 11 февраля 2009

У меня есть выпадающее меню, и при обратной передаче я не могу получить выбранное значение.

  • MasterPage EnableViewState = False
  • Страница содержимого ViewState = true
  • DropdownList Control ViewState = true

Не работает

Если я переключаю Masterpage EnableViewState = true, он работает, однако остальная часть сайта действительно не нуждается в состоянии просмотра, поэтому в идеале я хочу, чтобы он был включен.

Привязка данных происходит в обработчике Page_Init, и в нем есть предложение Page.IsPostBack.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 11 февраля 2009

Существует только одно Viewstate на страницу (кроме состояния управления, которое хранится в viewstate). Если вы отключите его на главной странице, он будет отключен на странице.

3 голосов
/ 11 февраля 2009

Крис на 100% прав. Если вы хотите сохранить состояние только для одного элемента управления, вы можете создать подкласс DropDown и добавить состояние элемента управления. Это работает независимо от настроек ViewState.

Вот учебник Фила Хаака по управлению состоянием.

1 голос
/ 11 февраля 2009

Я думаю, вы сможете получить выбранное значение выпадающего списка из коллекции форм (без необходимости включать ViewState), например:

if (IsPostBack)
    string selectedValue = Request.Form["Id_of_the_DropDownList"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...