Meilleur auteur de réponses
SharePoint Client OM : Récupère une liste SharePoint a parti de l’Url.

Question
-
Bonjour les amis,
Je suis en train de jouer avec le client OM SharePoint.
Pour recuperer une liste SharePoint, on peut faire comme ca :
this.web = clientContext.get_web();
this.list = this.web.get_lists().getByTitle(‘<ListName>’);
Sauf que je voudrai récupère ma liste en passant l’url de la liste, comme Lists/<list>.
Y-a-t-il une méthode qui permet de faire ça.
Merci d’avance
- Déplacé Hengzhe Li mardi 21 février 2012 06:38 merge forum (Origine :Développement Sharepoint 2010)
Réponses
-
Bonjour
à a connaissance pas de methode pour récuperer la liste par url.
Il vous faudra donc recuperer la liste des lists complète eventuellement en faisant un loadwith uniquement pour charger l'url des listes (en plus de leur id)
et ensuite seconde requette pour charger la list désirée par son Id pour avoir tous les détails...
- Marqué comme réponse Ciprian Duduiala mardi 8 novembre 2011 06:45
-
Je confirme que le Client OM ne peut pas trouver une liste avec l'URL (et plein d'autres choses aussi :( ). De mon coté j'utilise un web service personnalisé qui m'aide à obtenir certaines infos manquantes.
Microsoft MVP C# || gabrielmongeon.com || LinkedIn- Marqué comme réponse Ciprian Duduiala mardi 8 novembre 2011 14:53
Toutes les réponses
-
Bonjour
à a connaissance pas de methode pour récuperer la liste par url.
Il vous faudra donc recuperer la liste des lists complète eventuellement en faisant un loadwith uniquement pour charger l'url des listes (en plus de leur id)
et ensuite seconde requette pour charger la list désirée par son Id pour avoir tous les détails...
- Marqué comme réponse Ciprian Duduiala mardi 8 novembre 2011 06:45
-
Bonjour, SPS5585,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
-
Vous pouvez obtenir la liste à partir d'une URL à l'aide de la méthode SPWeb.GetList : http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getlist.aspx
Cette méthode prend en entrée l'URL relative de la liste.
Il vous faudra donc indiquer le chemin relatif à partir de l'application Web (ex : "/site/subweb/lists/yourlist").
Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/
- Proposé comme réponse Sébastien PICAMELOTModerator vendredi 4 novembre 2011 16:56
- Non proposé comme réponse Sébastien PICAMELOTModerator lundi 7 novembre 2011 09:47
-
Sébastien,
Malheureusement je ne crois pas qu'il y ai de méthode équivalente sur le modèle objet client, vu que c'est le contexte de la question :) : http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.web_members.aspx
-
Effectivement, le mot "client" m'avait échappé... :)
Du coup, plan B avec la méthode GetFolderByServerRelativeUrl :
Folder folder = site.GetFolderByServerRelativeUrl("/sites/sebastien/Lists/Announcements"); clientContext.Load(folder); clientContext.ExecuteQuery();
La propriété "folder.Name" correspond au titre de votre liste (ici "Announcements"), ce qui devrait vous permettre de faire appel à la méthode
List list = clientContext.Web.Lists.GetByTitle(folder.Name);
Je ne suis pas super à l'aise avec le client OM, mais j'imagine qu'une lambda expression devrait permettre de faire ces opérations en une seule requête.
Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/
- Proposé comme réponse Sébastien PICAMELOTModerator lundi 7 novembre 2011 09:47
- Non proposé comme réponse Sébastien PICAMELOTModerator lundi 7 novembre 2011 12:49
- Modifié Sébastien PICAMELOTModerator lundi 7 novembre 2011 12:51
-
Sébastien,
la propriété folder.Name correspond au titre de la liste à condition que celui ci n'ai pas été changé depuis la création de la liste. Je ne suis pas convaincu en tout cas que ce soit une méthode "sûre" pour retrouver le titre de la liste ds tout les cas possibles.... Non ?
-
En effet... ce n'est pas une bonne pratique.
La propriété Name peut quand même être utilisée pour filtrer les listes :
ListCollection listCollection = clientContext.Web.Lists; clientContext.Load( listCollection, lists => lists.Where(list.RootFolder.Name => folder.Name) );
Mais on retombe sur une technique avec deux appels au serveur...
Dommage qu'il n'y a pas de lien liste <-> folder dans les deux sens.
Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/
- Modifié Sébastien PICAMELOTModerator lundi 7 novembre 2011 12:50
-
Je confirme que le Client OM ne peut pas trouver une liste avec l'URL (et plein d'autres choses aussi :( ). De mon coté j'utilise un web service personnalisé qui m'aide à obtenir certaines infos manquantes.
Microsoft MVP C# || gabrielmongeon.com || LinkedIn- Marqué comme réponse Ciprian Duduiala mardi 8 novembre 2011 14:53