Question

Je me sens comme je suis très proche de celui-ci.

Je sais comment obtenir la racine de la collection de sites à partir de ceci:

Comment puis-je obtenir la racine de la collection de sites à partir de SPContext.Actuel?

J'ai été déconner avec SPSiteDataQuery, mais cela semble être conçu de manière à obtenir des éléments de liste, pas d'informations sur la liste des parents.

Ce que j'ai besoin est d'obtenir tous les SPList pour l'ensemble d'un Site.J'ai besoin d'obtenir le nom, l'identification et parentweb de sorte qu'un utilisateur peut sélectionner une liste, et je peux y accéder directement dans l'avenir par SPList:Guid et ParentWeb:Guid

Il semble facile de faire cela de manière récursive par boucle à travers SPContext.Current.Web.Site.WebApplication.Sites et l'obtention de AllWebs comme illustré ici:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistcollection.aspx

Est-ce la meilleure façon de le faire?Il semble tout à fait inefficace.

Était-ce utile?

La solution

Il n'y a pas de moyen de construire pour obtenir toutes les listes d'une collection de site.

Votre méthode de boucle via toutes les selles et obtenir la collection de listes pour chacune est la seule façon, mais ce n'est pas efficace, vous souhaitez donc probablement créer un cache ou gérer votre propre liste et la mise à jour à l'aide d'un EventReceiver Chaque fois qu'une liste est créée / supprimée ou lorsqu'un site est supprimé.

Mais pour votre UI présentant les utilisateurs avec une liste de toutes les listes à être utiles, votre collection de sites doit être très petite auquel cas vous pourriez simplement faire une boucle.

Autres conseils

regarder ici: SpsivedataQuery vs. Récursive SPWeb.Listes performances

Je crois que votre question est très similaire à celle-là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top