追加機能を備えた SharePoint アセット ピッカー ダイアログに代わるものを書いています。
他のサイト コレクションにあるメディア ライブラリを参照する必要があります。そこで、メディア ライブラリへの URL を sharepoint プロパティ バッグに追加できる構成ページを追加しました。
カスタム AssetPicker ダイアログで、構成された URL から作成された SPList オブジェクトを、medialibs というメンバー リストに追加しました。
SPList オブジェクトが属する SPWeb と SPSite を dspose することが非常に重要であることはわかっています。ページの OnUnload イベントでそれを行いますが、ポストバック時に毎回 OnUnload が呼び出されることを発見しました。medialibs の SPList オブジェクトへの参照を保持するツリービュー コントロールがページにあるため、OnLoad で毎回 medialibs リストを再構築することはできません。それらを破棄して再構築すると、オブジェクトは新しく、異なったものになります。どのノードが開いているかの情報が失われるため、ツリービューを毎回再構築することはできません。
ポストバック後もメディアライブラリの内容を保持するにはどうすればよいですか? ユーザーがページを離れたときに medialibs の SPList オブジェクトが適切に破棄されるようにするにはどうすればよいですか?
ありがとう!