2011-02-07 5 views
0

Bonjour J'ai ce code qui passe par le site SharePoint et il regarde toutes les listes, et retourne ensuite à une étiquette. Fondamentalement, je veux qu'il ne saisir le site actuel liste, et non des sous-sites sous-je en ce moment mon site SP comme ceci:Énumération de sites/listes SharePoint

Main Site 
-Documents 
-Images 
-MyListA 
--Engineering (subSite) 
---Documents 
---Images 
---MyList10 

Il reproduit les images des documents les listes normales et MyList10 apparaît. Tout ce que je veux est de documents Images et MyListA Merci Vous

 string webUrl = SPContext.Current.Site.Url.ToString(); 

     using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) 
     { 
      SPWebCollection subSites = oWebsite.Webs; 

      foreach (SPWeb subSite in subSites) 
      { 

       SPListCollection collList = subSite.Lists; 

       foreach (SPList oList in collList) 
       { 
        Label1.Text = SPEncode.HtmlEncode(oList.Title); 
       } 

       subSite.Close(); 
      } 
     } 

Répondre

2

Tout ce que vous avez besoin est ceci:

foreach (SPList list in SPContext.Current.Web.Lists) 
    { 
     Label1.Text = SPEncode.HtmlEncode(list.Title); // notice that it will overwrite label text every time 
    } 

Mentionner également, que le code que vous avez fourni ont des fuites de mémoire.

+0

Pour la fuite de mémoire, faites-vous référence au fait que je dois la mettre au rebut? – atrljoe

+1

Dans le code que j'ai écrit avant que rien ne doit être éliminé. Dans votre code, vous devez disposer de nouveau SPSite (webUrl) (mieux utiliser SPContext.Current.Site qui ne doit pas être éliminé). Aussi, vous devriez le faire: essayez {...} enfin {if (subSite! = Null) subSite.Dispose()} au lieu de simplement disposer de subSite, car si vous obtenez une exception, l'objet subSite ne sera pas éliminé. – EvgK

+0

Merci, une autre question SPContext.Current.Web.Lists renvoie un grand nombre de listes de systèmes, est-il de toute façon de renvoyer juste moins d'éléments tels que Documents, Images, et ceux créés par l'utilisateur. – atrljoe