У меня есть страница aspx, которая динамически загружает элементы управления пользователя: есть UpdatePanel, который содержит эти элементы управления (один раз каждый раз). Когда я меняю элемент управления с другим, он терпит неудачу с сообщением:Не удалось загрузить viewstate
Не удалось загрузить viewstate. Элемент управления Дерево, в которое находится точка просмотра , должно соответствовать дереву управления , которое использовалось для сохранения viewstate во время предыдущего приложения. Например, при добавлении элементов управления динамически, элементы управления , добавленные во время возврата, должны соответствовать типу и положению элементов управления , добавленных во время первоначального приложения .
Все три элемента управления наследуются от System.Web.UI.UserControl
. Возможно, я смогу решить проблему:
- Загрузите три элемента управления во время запуска, а затем спрячьте два из них, сколько нам нужно.
- Используйте три UpdatePanels, по одному для каждого пользовательского элемента управления.
- Любые советы?
Нет, я сделал это, и это бросает то же исключение. – VansFannel
Попробуйте поставить точку останова в своей функции, которую вы ударите, когда вы опубликуете сообщение. Затем используйте окно просмотра, чтобы начать подталкивать в списке .Controls, который содержит ваши динамически созданные элементы управления. Посмотрите, существуют ли ваши элементы управления в этом списке. Если нет, вам нужно будет добавить каждый элемент управления в свою собственную панель обновления. – Daniel
Теперь я использую один UpdatePanel для каждого элемента управления. Проблема решена, но теперь у меня есть еще одна: Ошибка выполнения в Microsoft JScript: Sys.InvalidOperationException: Не удалось найти UpdatePanel с идентификатором. 'CreateDestination1_DestinationMainUpdatePanel. Если вы обновляете динамически, он должен находиться внутри другой UpdatePanel. – VansFannel