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();
}
}
Pour la fuite de mémoire, faites-vous référence au fait que je dois la mettre au rebut? – atrljoe
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
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