Как получить доступ к Control.ViewState с динамически добавленным подклассом Control? - PullRequest
0 голосов
/ 25 сентября 2008

Мы создали элемент управления, который должен сохранять данные через свойство ViewState класса Control. Подклассы нашего класса строго контролируют доступ к свойству ViewState (оно защищено для объекта Page). Мы добавляем элемент управления к Page.Controls в OnInit, а затем пытаемся установить свойство ViewState в OnPreLoad.

Когда мы декодируем и проверяем ViewState страницы, наши значения не записываются и, следовательно, недоступны для последующего извлечения.

Кто-нибудь знает, как мы можем заставить наш элемент управления участвовать в процессе ViewState?

Ответы [ 3 ]

1 голос
/ 25 сентября 2008

Проблема заключается в добавлении элемента управления на страницу напрямую. К сожалению, это слишком высокая иерархия элементов управления, чтобы участвовать в Forms ViewState Handling. Если вы добавите элемент управления в фактическую коллекцию элементов управления формы ASPNet, то он будет успешно участвовать в LoadViewStateRecursive и SaveViewStateRecursive.

0 голосов
/ 25 сентября 2008

ViewState загружается только после OnInit, но до OnLoad.

Вот примерный план жизненного цикла страницы ( GregMac ), опубликованный в ответ на мой предыдущий вопрос.

Initialize LoadViewState Загрузка данных обратной передачи Управление вызовами Загрузка событий Событие загрузки вызова События управления вызовами Контроль PreRender PreRender SaveViewState Выгрузить
0 голосов
/ 25 сентября 2008

Попробуйте создать элемент управления в OnInit, затем добавьте его в Page.Controls во время OnLoad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...