2009-05-04 5 views
0

私はカスタムルックアップフィールドを作成し、トップレベルサイトの連絡先を参照しています。しかし、私はサブサイトを検索したい。トップレベルでない親ウェブを取得

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

これは私が検索に使用したコードですが、私はrootwebを参照しています。私はそれを望んでいません。 誰か?

THX

+0

これは私のサイトの値を開始する方法です。 SPSite site = SPContext.GetContext(this.Context).Site; – idsis

答えて

0

と仮定すると、 "サイト" とは、あなたの現在のSPWebで、単に)(site.Websまたはsite.GetSubwebsForCurrentUserを見てください。現在のユーザーがアクセス権を持っていなくても、前者がすべてのサブWebを提供しようと考えているので、おそらく後者が優先されます。


更新 - 私はあなたの質問のテキストがあなたがサブウェブを望むことを示したのに対して、上記はサブウェブです。親Webは単にsite.ParentWebです(もう一度、 "site"はあなたのSPWebです)。 IsRootWebプロパティをチェックしたい場合は、いつでもIsRootWebプロパティをチェックすることができます。


さらに別のアップデート - あなたのコメントに基づいて、「サイト」はSPWebの代わりにSPSiteのように見えます。 Webを取得するには、site.OpenWeb()(ここでは "site"はSPSite)を実行する必要があります。これを行うには、C#usingステートメントを使用してSPWebを処理した後に処理するのが最適です。 OpenWebメソッドは、SPSiteがSPWebの完全なURLでインスタンス化された場合にうまく動作するパラメータを取ることができないことに注意してください。または、OpenWebはURLパラメータを取ることができます。

関連する問題