Не удалось загрузить viewstate - Content Place holder - PullRequest
0 голосов
/ 17 января 2012

Моя главная страница имеет заполнитель содержимого, а моя страница имеет 2 сетки rad в отдельных asp: панелях. При раскрывающемся списке соответствующая сетка загружается на страницу.

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

В этот момент открывается grid1, но я получаю следующую ошибку javascript.

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

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

Ответы [ 3 ]

1 голос
/ 17 января 2012

Один и тот же тип элемента управления в том же заполнителе содержимого не является проблемой.

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 голосов
/ 19 января 2012

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

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

0 голосов
/ 17 января 2012

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

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

...