"Не удается загрузить ViewState" после изменения динамического элемента управления

На моей странице ASP.NET я должен динамически выбирать и загружать пользовательский элемент управления, в зависимости от выбранного значения в раскрывающемся списке. Однако я столкнулся со следующей проблемой: при изменении параметров динамически загружаемого элемента управления, а затем при выборе в выпадающий список изменен (что вынуждает меня загружать другой динамический элемент управления при следующей перезагрузке страницы), и я получаю исключение "Не удается загрузить ViewState". Я предполагаю, что это происходит из-за того, что ViewState пытается восстановить параметры старого контроль, и он не находит его. Итак, есть ли какой-нибудь способ остановить состояние просмотра от попыток восстановить состояние элемента управления non-existig?

4 ответа

Сначала вы должны загрузить элементы управления точно таким же образом, а затем изменить после LoadViewState или отключите режим просмотра для динамических элементов управления, которые, как вы знаете, не будут синхронизированы со страницей.

У меня та же проблема с контролем сетки. Я динамически связывал просмотры данных, и в соответствии с решением DarrenMB я просто написал EnableViewState = false; и проблема решена.

Infragistics.Web.UI.DataSourceControls.DataView dvMesaj = new Infragistics.Web.UI.DataSourceControls.DataView();


        whdsShowMessages.DataRelations.Clear();
        whdsShowMessages.DataViews.Clear();
        whgridShowMessages.Rows.Clear();
        EnableViewState = false; //here is the solution..
        whdsShowMessages.DataViews.Add(dvKisi);
        whdsShowMessages.DataViews.Add(dvMesaj);

Была такая же проблема, когда список элементов управления переменной длины был добавлен, переставлен и / или изменен пользователем и может изменяться во время каждой обратной передачи.

Ответ на удивление прост.

При создании динамического элемента управления установите " EnableViewState = False ", прежде чем добавить его в коллекцию элементов управления страниц. Тогда информация о состоянии представления не сохраняется, и независимо от того, сколько динамических элементов управления добавлено, удалено или переупорядочено, состояние представления для всего остального будет работать правильно.

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

Похоже, что состояние раскрывающегося / добавленного элемента управления не восстанавливается до восстановления состояния просмотра. Если в раскрывающемся меню по умолчанию отображается элемент управления X, а пользователь изменяет его на показ элемента управления Y, страница должна добавить элемент управления Y в коллекцию элементов управления до восстановления состояния просмотра.

Другие вопросы по тегам