При переключении на ASP.NET 3.5 DropDownList не запоминает динамически добавленные элементы - PullRequest
2 голосов
/ 15 января 2009

У меня есть сайт, который использует пару DropDownLists, которые связаны данными. Я также делал традиционный if (! IsPostBack) {list.Databind ();} и полагался на viewstate, чтобы списки оставались заполненными во время обратной записи. Я недавно преобразовал сайт в ASP.NET 3.5 и заметил, что списки пусты при обратной передаче (как будто ViewState отключен). Я явно ничего не отключал, и мне интересно, видел ли кто-либо подобное изменение или поведение в зависимых от состояния просмотра элементах управления.

Спасибо!

Джеймс

Ответы [ 2 ]

3 голосов
/ 15 января 2009

Я определенно видел подобные проблемы (хотя мои были с видимостью). Попробуйте убедиться, что ViewState явно включен во всей иерархии элементов управления вплоть до раскрывающегося списка.

, например

‹asp:Page EnableViewState="True" ...›
     ...

     ‹asp:Panel EnableViewState="True"...›
         ...
         ‹asp:DropDownList EnableViewState="True" ...›
         ...
      ...
...

R.

2 голосов
/ 15 января 2009

Этот фрагмент, вставленный в проблемную страницу, - это быстрый способ узнать, где включено / отключено состояние просмотра.

<%
Control c = <YourMisbehavingControlNameHere>;

while ( c != null )
{
    Response.Write( c.GetType().Name + " = " + c.EnableViewState.ToString() + "<br/>" );

    c = c.Parent;
}

%>
...