3 votes

Sous-site SharePoint - Itération sur les listes

J'ai un site SharePoint. J'essaie d'ouvrir un sous-site et d'obtenir une liste de toutes les listes de ce sous-site. Ce code renvoie les listes de niveau supérieur "http://myspserver".
Comment puis-je obtenir uniquement les listes de /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
    {
        ....
    }
}

4voto

Kobi Points 65357

Vous devez itérer sur collList pas SPContext.Current.Web.Lists .

foreach (SPList oList in collList)
{
}

SPContext.Current.Web.Lists vous obtiendrez le site dans lequel vous vous trouvez actuellement. On peut supposer que c'est http://myspserver lorsque vous exécutez votre code.

Notez également que votre code présente des fuites - vous ne disposez pas de l'objet SPSite. Cela devrait ressembler à ça :

using(SPSite site = new SPSite(webUrl))
using(SPWeb oWebsite = site.OpenWeb())
{
}

2voto

theChrisKent Points 10963

Vous créez le SPListCollection mais là, vous utilisez l'objet SPContext.Current.Web.Lists dans votre foreach corrigez votre code de cette façon et tout devrait bien se passer :

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
    {
       ....
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X