2009-02-10 3 views
2

У меня есть выпадающее меню и по обратной передаче я не могу получить выбранное значение.ASP.NET Dropdown - работает, когда MasterPage EnableViewState = true

  • MasterPage EnableViewState = False
  • Содержание ViewState Page = истинный
  • DROPDOWNLIST Control ViewState = истина

Не работает

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

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

Любые идеи?

ответ

6

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

+0

Так установить его в странице сам не переопределить его? – TimLeung

+0

Параметр masterpage здесь переопределяется и эффективно отключается Viewstate –

3

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

Here is a Phil Haack tutorial on control state.

+0

+1 для учебника Haacked –

1

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

if (IsPostBack) 
    string selectedValue = Request.Form["Id_of_the_DropDownList"]; 
Смежные вопросы