2013-08-20 2 views
0

У меня есть страница, которая имеет datagrid и раскрывающийся список, кроме других вещей на ней в специальной области страницы (скажем appArea), которая загружается в div рабочего стола.LoadViewState не вызвал событие PostBack

Выпадающий список должен перезагружать datagrid, когда обрабатывается обработчик SelectedIndexChanged, который работает хорошо.

По достижении определенного порога изменения размера я перемещаю эту appArea в другое место (скажем, mobileArea div, поскольку я должен показать ту же область с привязкой события и т. Д. Неповрежденными) с этим фрагментом ниже.

   var wrapper = document.createElement('div'); 
       $(wrapper).append($appArea.detach()); 
       $(wrapper).find('script').remove(); 
       $("wikiAppArea").parent().empty().append($(wrapper).children().contents()); 

При перемещении appArea в mobileArea DIV, если изменить значение выпадающего, событие постбэк SelectedIndexChanged называется и DataGrid является переплетен, но DataGrid теряются.

Выполнение трассировки на странице показывает, что в случае потери данных при выпадающем меню DataGrid вообще не вызывает метод LoadViewState (вызываются SaveViewState и TrackViewState).

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

Есть ли способ принудительно вызвать LoadViewState в этом случае.

+0

Datagrid переопределяет методы SaveViewState и LoadViewState. TrackViewState не был переопределен в DataGrid – ssingh3

ответ

1

Выполняется при использовании атрибута ViewStateModeById, это исправлено.

Класс ViewStateModeByIdAttribute используется для указания элемента управления, требующего загрузки состояния по идентификатору. Поведение загрузки состояния по умолчанию для ASP.NET для загрузки информации состояния представления для элемента управления по его индексу в дереве управления страницы. Существует стоимость исполнения для загрузки информации о состоянии отображения по идентификатору, потому что перед тем, как загружать информацию о состоянии представления, необходимо выполнить поиск элемента управления списком элементов управления.

Класс ViewStateModeByIdAttribute не применяется для сохранения информации о состоянии представления для элемента управления. Атрибут метаданных класса ViewStateModeByIdAttribute действителен только для объявлений классов.

Смежные вопросы