リピーター内にユーザー コントロールを動的に構築するかなり複雑なページがあります。このリピーターは、初期化前の Init ページ イベント中にバインドする必要がありますViewState
。そうしないと、動的に作成されたユーザー コントロールの状態が保持されません。
これにより興味深いキャッチ 22 が作成されます。これは、リピーターをバインドするオブジェクトを最初のページの読み込み時に作成し、ユーザーが終了または保存するまでメモリに保持する必要があるためです。
このオブジェクトを保存するために使用することはできませViewState
んが、初期化中に使用できるため、セッションに保存することを余儀なくされました。
動作をエミュレートするために、非ポストバック中にセッション値を明示的に null にする必要があるため、これにも問題がありますViewState
。
このシナリオでは、管理を状態にするためのより良い方法が必要です。何か案は?
編集:の使用に関するいくつかの良い提案LoadViewState
がありますが、それを行ったときに状態が復元されないという問題がまだあります。
ここは、ページ構成が多少
ページ --> ユーザー コントロール --> リピーター --> 動的に作成された N 個のユーザー コントロール。
完全にカプセル化され、それが存在するページから独立するように設計されているため、オーバーライドさLoadViewState
れたものを親に入れました。UserControl
そこが問題なのか気になります。