0

追加機能を備えた SharePoint アセット ピッカー ダイアログに代わるものを書いています。

他のサイト コレクションにあるメディア ライブラリを参照する必要があります。そこで、メディア ライブラリへの URL を sharepoint プロパティ バッグに追加できる構成ページを追加しました。

カスタム AssetPicker ダイアログで、構成された URL から作成された SPList オブジェクトを、medialibs というメンバー リストに追加しました。

SPList オブジェクトが属する SPWeb と SPSite を dspose することが非常に重要であることはわかっています。ページの OnUnload イベントでそれを行いますが、ポストバック時に毎回 OnUnload が呼び出されることを発見しました。medialibs の SPList オブジェクトへの参照を保持するツリービュー コントロールがページにあるため、OnLoad で毎回 medialibs リストを再構築することはできません。それらを破棄して再構築すると、オブジェクトは新しく、異なったものになります。どのノードが開いているかの情報が失われるため、ツリービューを毎回再構築することはできません。

ポストバック後もメディアライブラリの内容を保持するにはどうすればよいですか? ユーザーがページを離れたときに medialibs の SPList オブジェクトが適切に破棄されるようにするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

4

medialibs を永続化する必要がある理由がわかりません。最初の読み込み時に、SPList オブジェクトに基づいて TreeView を設定します。その後、ViewState は、要求全体で TreeView の永続性を処理します。SPSite/SPWeb オブジェクトは、作成段階で破棄されます (usingステートメントはうまく機能します)。私は何か見落としてますか?

于 2010-11-26T01:00:13.957 に答える