Usted puede utilizar el método del servicio web Listas GetListAndView para obtener los esquemas para la lista y una vista.
De la documentación, si deja el parámetro viewName
vacío, se devolverá la vista predeterminada. Luego, puede leer el nodo <ViewFields></ViewFields>
para la lista de campos.
* Editar *
Resulta que el uso de XPath para consultar el XML devuelto fue más difícil de lo que pensaba ... Esto es lo que ocurrió:
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);
}
parece que tiene que tener una XmlNamespaceManager
de lo contrario su consulta siempre devuelve ningún valor. Algo sobre especificar el espacio de nombres ... Aquí está a good reference.
parece interesante, lo intentaré lo antes posible y publicaré los resultados –
ViewFields Devuelva los nombres de los campos, así que tuve que volver a marcar cada campo por su nombre para obtener su nombre de visualización, y el segundo problema que los ViewFields no se muestran todos los campos que se muestran en la vista predeterminada de SharePoint para esa lista (¡Si la lista es una lista de imágenes)! ¿algunas ideas? –
Intenté esto para obtener Fields, System.Xml.XmlNode list = SPListWebService.GetListAndView (xmlnode.Attributes ["Title"]. Value, string.Empty); System.Xml.XmlNodeList visibleColumns = list.SelectNodes ("View/ViewFields/FieldRef"); .... ¿dónde me equivoqué? –