2010-11-25 16 views
0

Ich schreibe einen Ersatz für den Sharepoint-Asset-Picker-Dialog mit zusätzlichen Funktionen.Sharepoint 2010: So erhalten Sie SPList-Objekte?

Es ist erforderlich, Medienbibliotheken zu durchsuchen, die sich in anderen Websitesammlungen befinden. Also habe ich eine Konfigurationsseite hinzugefügt, auf der Sie die URLs zu den Medienbibliotheken zum Sharepoint-Eigenschaftstasche hinzufügen können.

Im benutzerdefinierten AssetPicker-Dialog habe ich die SPList-Objekte, die aus den konfigurierten URLs erstellt wurden, zu einer Mitgliederliste namens medialibs hinzugefügt.

Ich weiß, dass es sehr wichtig ist, die SPWeb und SPSite, zu der das SPList-Objekt gehört, zu verschieben. Ich tue das im OnUnload-Ereignis der Seite, aber habe festgestellt, dass OnUnload jedes Mal beim Postback aufgerufen wird. Ich kann die medialibs-Liste nicht jedes Mal in OnLoad neu erstellen, da auf der Seite ein Treeview-Steuerelement vorhanden ist, das Verweise auf die SPList-Objekte in medialibs enthält. Wenn ich sie entsorge und neu baue, sind die Objekte neu und anders. Die Strukturansicht kann nicht jedes Mal neu erstellt werden, da dadurch die Informationen verloren gehen, welche Knoten geöffnet sind.

Wie behalte ich den Inhalt der medialibs über Postback? Wie stelle ich sicher, dass die SPList-Objekte in medialibs ordnungsgemäß entsorgt werden, wenn der Benutzer die Seite verlässt?

Danke!

Antwort

4

Ich bin mir nicht sicher, warum Sie Medialibs persistieren müssten. Beim erstmaligen Laden würden Sie das TreeView basierend auf Ihren SPList-Objekten auffüllen. ViewState behandelt dann die Persistenz der TreeView über Anforderungen hinweg. SPSite/SPWeb-Objekte würden in der Populationsstufe entsorgt (using Anweisungen funktionieren gut). Habe ich etwas verpasst?