SharePoint Subsite - перебирать списки - PullRequest
3 голосов
/ 16 февраля 2011

У меня есть сайт SharePoint.Я пытаюсь открыть дочерний сайт и получить список всех списков на этом дочернем сайте.Этот код возвращает «1001 * списки верхнего уровня».
Как получить только списки из / mysubsite?

string webUrl = "http://myspserver/mysubsite";

using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web
{

    SPListCollection collList = oWebsite.Lists; //Open Lists

    foreach (SPList oList in SPContext.Current.Web.Lists)
    //For Each List Execute this
    {
        ....
    }
}

Ответы [ 2 ]

4 голосов
/ 16 февраля 2011

Вы должны перебрать collList, а не SPContext.Current.Web.Lists.

foreach (SPList oList in collList)
{
}

SPContext.Current.Web.Lists получит сайт, на котором вы сейчас находитесь. Предположительно, это http://myspserver, когда вы запускаете свой код.

Также обратите внимание, что ваш код просачивается - вы не избавляетесь от объекта SPSite. Это должно выглядеть так:

using(SPSite site = new SPSite(webUrl))
using(SPWeb oWebsite = site.OpenWeb())
{
}
2 голосов
/ 16 февраля 2011

Вы создаете объект SPListCollection, но там вы используете SPContext.Current.Web.Lists в вашем foreach, исправьте ваш код следующим образом, и все должно быть хорошо:

string webUrl = "http://myspserver/mysubsite";

using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web
{

    SPListCollection collList = oWebsite.Lists; //Open Lists

    foreach (SPList oList in collList)
    //For Each List Execute this
    {
       ....
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...