У меня довольно сложная страница, которая динамически создает пользовательские элементы управления внутри повторителя. Этот повторитель должен быть связан во время события страницы Init до инициализации ViewState
, иначе динамически созданные пользовательские элементы управления не сохранят свое состояние.
Это создает интересный Catch-22, потому что объект, с которым я связываю повторитель, должен быть создан при начальной загрузке страницы, а затем сохраняться в памяти до тех пор, пока пользователь не решит покинуть или сохранить.
Поскольку я не могу использовать ViewState
для хранения этого объекта, но пока он доступен во время инициализации, я был вынужден сохранить его в сеансе.
Это также имеет проблемы, потому что я должен явно обнулять значение сеанса во время не обратных передач, чтобы эмулировать, как работает ViewState
.
В этом сценарии должен быть лучший способ управления состоянием. Есть идеи?
Редактировать: Несколько хороших советов по использованию LoadViewState
, но у меня все еще есть проблемы с состоянием, которое не восстанавливается, когда я это делаю.
Вот несколько, если структура страницы
Страница -> UserControl -> Repeater -> N элементов UserControls, динамически создаваемых.
Я поместил переопределенный LoadViewState
в родительский UserControl
, так как он предназначен для полной инкапсуляции и не зависит от страницы, на которой он находится. Мне интересно, в этом ли проблема?