Vous pouvez utiliser la méthode GetListAndView des listes de service Web pour obtenir les schémas de la liste et une vue. Dans la documentation, si vous laissez le paramètre viewName
vide, la vue par défaut sera renvoyée. Ensuite, vous pouvez lire le nœud <ViewFields></ViewFields>
pour la liste des champs.
* Modifier *
Active l'aide XPath pour interroger le retour XML a été plus difficile que ce que je pensais ... voici ce que je suis venu avec:
XmlNode result = webService.GetListAndView("My Pictures", string.Empty);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(result.OwnerDocument.NameTable);
nsmgr.AddNamespace("sp", "http://schemas.microsoft.com/sharepoint/soap/");
string xpathQuery = "sp:View/sp:ViewFields/sp:FieldRef";
XmlNodeList nodes = result.SelectNodes(xpathQuery, nsmgr);
for (int i = 0; i < nodes.Count; i++)
{
Console.WriteLine(nodes[i].Attributes["Name"].Value);
}
On dirait que vous devez avoir un XmlNamespaceManager
sinon votre requête renvoie toujours aucune valeur. Quelque chose sur la spécification de l'espace de noms ... Voici a good reference.
semble intéressant, je vais essayer dès que possible et afficher les résultats –
ViewFields Renvoie les noms des champs, donc j'ai dû re-featch chaque champ par son nom pour obtenir son nom d'affichage, et le second problème que les ViewFields pas affiché tous les champs affichés dans la vue par défaut de sharepoint pour cette liste (si la liste est une liste d'images)! des idées? –
J'ai essayé cela pour obtenir Fields, System.Xml.XmlNode list = SPListWebService.GetListAndView (xmlnode.Attributes ["Title"]. Value, string.Empty); System.Xml.XmlNodeList visibleColumns = list.SelectNodes ("View/ViewFields/FieldRef"); .... où est-ce que je me suis trompé? –