ASP.NET - постоянное состояние представления файла приводит к проблемам с элементами управления панели обновления ASP - PullRequest
1 голос
/ 08 февраля 2011

У меня проблема с элементами управления раскрывающегося списка в моем проекте ASP.NET, что сводит меня с ума! любая помощь приветствуется ...

У меня есть два DropDownList на панели обновлений на моей странице, DropDownList1 используется в качестве фильтра для DropDownList2, который, в свою очередь, заполняет список. Проблема заключается в том, что при переопределении методов сохранения состояния представления страницы ниже происходит следующее:

1) Выберите значение в DropDownList1 и DropDownList2 заполняет соответственно. 2) Выберите значение в DropDownList2, и списки не загружают ничего, а DropDownList2 теряет выбранное значение.

Логика в коде для этих событий, похоже, не является проблемой, поскольку, когда я удаляю панель обновления со страницы, она работает нормально! Silimarly, он работает, когда присутствует панель обновления, но состояние просмотра не переопределяется!

Я провел некоторую трассировку в Visual Studio, и кажется, что событие для DropDownList1 вызывается для второй обратной передачи, хотя должно вызываться только событие для DropDownList2, поэтому мне интересно, есть ли какое-то " стек событий "удерживается ASP, который вызывает первое событие, даже если оно уже было вызвано и должно быть очищено. Он отлично работает для страниц без UpdatePanels.

Я переопределил

Page.SavePageStateToPersistenceMedium 

и

Page.LoadPageStateFromPersistenceMedium 

для сохранения / загрузки из текстового файла согласно этому примеру:

http://aspalliance.com/911

Следующие свойства были установлены для каждого элемента управления:

<asp:UpdatePanel runat="server" ID="upMain" UpdateMode="Conditional" >

<asp:DropDownList ID="DropDownList1" runat="server" CssClass="TextBoxFull" AutoPostBack="True"  OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" ondatabound="DropDownList1_DataBound">

<asp:DropDownList ID="DropDownList2" runat="server" CssClass="TextBoxFull" AutoPostBack="True"  OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" ondatabound="DropDownList2_DataBound">

Любая помощь приветствуется, это сводит меня с ума весь день.

Спасибо.

1 Ответ

0 голосов
/ 15 февраля 2011

Не смог разобраться с этим в конце, поэтому я переписал всю вещь, наследующую от класса PageStatePersister, и она отлично работает. Иногда лучше начинать с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...