2012-01-17 4 views
0

На моей главной странице есть держатель содержимого, а моя страница имеет 2 рада сетки в отдельных панелях asp:. В раскрывающемся списке соответствующая сетка загружается на страницу.Не удалось загрузить viewstate - Content Place holder

  1. Я выбираю сетку 1 из выпадающего списка
  2. Нажмите на добавить новую строку, но не стоит отменить или добавить любую новую строку (пусть, что новая строка остается открытой)
  3. Выберите СЕТКА2 из выпадающего списка, пусть груз сетки
  4. Снова выберите СЕТКА1 из выпадающего списка

в этот момент открывается СЕТКА1, но я получаю следующее сообщение об ошибке яваскрипта.

Ошибка выполнения Microsoft JScript: Sys.WebForms.PageRequestManagerServerErrorException: Не удалось загрузить viewstate. Дерево управления, в которое загружается viewstate, должно соответствовать дереву управления, который использовался для сохранения состояния представления во время предыдущего запроса. Например, при добавлении элементов управления динамически элементы управления, добавленные во время обратной связи, должны соответствовать типу и положению элементов управления, добавленных во время первоначального запроса.

Любое представление о проблеме. Я читал на некоторых форумах, что проблема может быть, используя тот же тип управления в одном держателе содержимого. Любое предложение по решению ???

+0

Любая помощь по этому вопросу? – RMN

ответ

0

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

radgrid1.Controls.Clear(); radgrid2.Controls.Clear();

0

Без дополнительной информации кажется, что ваши элементы управления больше не находятся на странице после обратной передачи. Вы удаляете сетку решетки или вы просто делаете их видимыми, когда это необходимо? Возможно также, что вы добавляете их динамически. Это может вызвать проблемы с радиаторами, о которых я думаю.

Я думаю, что лучшим решением является использование одной сетки, чтобы манипулировать ею, когда пользователь сделал новый выбор. Если сетки сильно отличаются друг от друга, я бы добавил несколько и сделал их видимыми при выборе из списка (не делайте этого, когда у вас есть более 3 опций).

+0

Да, из-за различий в количестве столбцов и сложности, я использую 2 сетки. Еще я бы предпочел только 1 сетку. Я просто делаю сетку видимой = ложной. Моя сетка1 загружается для всех разных значений выпадающего списка, но grid2 используется только для одного элемента. – RMN

1

Тот же тип контроля в одном и том же держателе содержимого не является проблемой.

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. 

Это происходит чаще всего при динамическом добавлении и удалении элементов управления. Простое изменение видимости не должно вызывать ошибки.

Может показаться, что часть вашего кода поможет.

+0

Код работает нормально во всех случаях. Я получаю эту ошибку только в том случае, когда одна сетка находится в режиме редактирования, и, не выходя из режима редактирования, я открываю другую сетку и снова загружаю сетку, которая была первоначально открыта и находилась в режиме редактирования. – RMN

+0

Можете ли вы предоставить какую-то другую помощь? Код в противном случае не дает никакой проблемы, все функциональные возможности работают идеально.Только когда сетка находится в режиме редактирования, и я повторяю вышеупомянутые шаги, это дает мне ошибку. Я попытался очистить состояние просмотра при изменении выбора выпадающего списка, пока не удалось :( – RMN

+0

Вы можете попытаться отменить добавленную строку перед изменением сетки. Можете ли вы также предоставить ссылку на этот компонент сетки RAD, я предполагаю, что это не стандарт asp.net управление. – nunespascal