Как вы получаете доступ к Control.ViewState с динамически добавляемым подклассом Control?
Вопрос
Мы создали элемент управления, который должен сохранять данные с помощью свойства ViewState класса Control.Подклассы нашего класса строго контролируют получение доступа к свойству ViewState (оно защищено в объекте Page).Мы добавляем элемент управления на страницу.Элементы управления в OnInit, а затем пытаемся установить свойство ViewState в OnPreLoad.
Когда мы декодируем и проверяем состояние просмотра страницы, наши значения не были записаны и, следовательно, недоступны для последующего извлечения.
Кто-нибудь знает, как мы можем заставить наш контроль участвовать в процессе ViewState?
Решение
Проблема заключается в непосредственном добавлении элемента управления на Страницу.К сожалению, это слишком высоко в иерархии элементов управления, чтобы участвовать в обработке ViewState форм.Если вы добавите элемент управления в фактическую коллекцию элементов управления формы ASPNet где-нибудь, то он будет успешно участвовать в LoadViewStateRecursive и SaveViewStateRecursive.
Другие советы
Попробуйте создать свой элемент управления в OnInit, затем добавьте его на Страницу.Элементы управления во время загрузки.
ViewState загружается только после OnInit, но перед OnLoad.
Вот приблизительное описание Жизненного цикла Страницы(ГрегМак) опубликовал это в ответе на мой предыдущий вопрос.