2009-05-04 10 views
0

Ich habe ein benutzerdefiniertes Suchfeld erstellt und ich suche die Kontakte in meiner Top-Level-Website. aber ich möchte nach einer Unterwebsite suchen.Erhalten Sie übergeordnete Web nicht oberste Ebene

dataSource.List = site.RootWeb.Lists ["Contacts"];

Dies ist der Code, den ich für die Suche verwendet habe, aber ich verweise auf das Rootweb, und das möchte ich nicht. Jemand?

thx

+0

So initiiere ich meinen Site-Wert SPSite site = SPContext.GetContext (this.Context) .Site; – idsis

Antwort

0

Unter der Annahme, "site" Ihre aktuelle SPWeb ist, schauen Sie einfach bei site.Webs oder site.GetSubwebsForCurrentUser(). Ich glaube, der erstere wird versuchen, Ihnen alle Unterwebs zu geben, auch wenn der aktuelle Benutzer keinen Zugriff hat, also wird Letzteres wahrscheinlich bevorzugt.


Update - ich später erkannte, Ihre Frage Titel angezeigt Sie das übergeordnete Netz wollen, während der Text Ihrer Frage angezeigt Sie ein Unterweb wollte. Oben ist ein Unternetz. Das übergeordnete Web ist einfach site.ParentWeb (wiederum unter der Annahme, dass "site" Ihr SPWeb ist). Sie können die IsRootWeb-Eigenschaft immer überprüfen, wenn Sie dies überprüfen möchten.

Noch ein Update - Basierend auf Ihrem Kommentar sieht es aus wie "Website" kann eine SPSite anstelle eines SPWeb sein. Um ein Web zu erhalten, müssen Sie etwas wie site.OpenWeb() tun (jetzt unter der Annahme, dass "site" eine SPSite ist). Es empfiehlt sich, dies innerhalb einer C# using-Anweisung zu tun, um die SPWeb-Eigenschaft zu entfernen, wenn Sie fertig sind. Beachten Sie, dass die OpenWeb-Methode keine Parameter annehmen kann, die gut funktionieren, wenn die SPSite mit der vollständigen URL zu Ihrem SPWeb instanziiert wurde. Oder das OpenWeb kann einen URL-Parameter annehmen.

Verwandte Themen