Страница выдает ошибку ViewState при изменении коллекции элементов в раскрывающемся списке в событии IndexChanged - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть элемент управления ASCX, который представляет собой специальный выпадающий список. Я добавляю этот элемент управления динамически на страницу и заполняю его данными. Этот элемент управления имеет обратную передачу, которая изменит содержимое второго динамически создаваемого стандартного выпадающего списка.

Когда я изменяю выделение в первом раскрывающемся списке, происходит смена индексированных данных, и я получаю новые данные и пытаюсь поместить их в коллекцию элементов второго раскрывающегося списка, сначала очистив ее, а затем заполнив новыми данными.

Это отлично работает при первом изменении выбора, но когда я выбираю второй раз, появляется следующая ошибка:

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

Я не добавляю и не удаляю новые элементы управления в запущенном событии, а только изменяю данные. И снова, это работает в первый раз, но не в последующие.

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

Надеюсь, это достаточно ясно:)

Спасибо!

1 Ответ

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

В вашем ASCX - вы воссоздаете оба выпадающих списка каждый раз в событии OnInit элемента управления? Если они создаются динамически, их нужно создавать каждый раз, когда происходит обратная передача, и это необходимо сделать до того, как значения ViewState будут десериализованы в дереве элементов управления.

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