Procedimiento para devolver elementos de lista
En esta tarea de programación se muestra cómo crear un formulario Windows Forms que usa el método GetListItems del servicio web de listas para devolver elementos de una lista.
Procedimientos
Antes de comenzar, cree una aplicación de Windows como se describe en Introducción a la personalización mediante programación de un sitio web de SharePoint en Visual Studio. Para obtener información acerca de cómo establecer una referencia web a un servicio web de Windows SharePoint Services, consulte Instrucciones para los servicios web.
Para agregar código para mostrar la colección de elementos de lista
Después de crear un proyecto de aplicación de Windows y agregar una referencia web, abra Form1 en la vista de diseño, abra el Cuadro de herramientas y, a continuación, arrastre un control Label y un control Button hasta el formulario.
Haga clic con el botón secundario en el control Label1, haga clic en Propiedades y, a continuación, elimine el valor Label1 de la propiedad Text del control.
Haga doble clic en el botón para mostrar el editor de código y agregue las siguientes líneas de código al controlador de eventos Click:
'Declare and initialize a variable for the Lists Web service. Dim listService As New Web_Reference.Lists() 'Authenticate the current user by passing their default 'credentials to the Web service from the system credential cache. listService.Credentials = System.Net.CredentialCache.DefaultCredentials 'Set the Url property of the service for the path to a subsite. listService.Url = "http://Server_Name/Subsite_Name/_vti_bin/Lists.asmx" 'Instantiate an XmlDocument object. Dim xmlDoc As New System.Xml.XmlDocument() 'Assign values to the string parameters of the GetListItems method, 'using GUIDs for the listName and viewName variables. For listName, 'using the list display name will also work, but using the list GUID 'is recommended. For viewName, only the view GUID can be used. 'Using an empty string for viewName causes the default view 'to be used. Dim listName As String = "{17991794-81BB-494F-9910-CFBF1093A7CF}" Dim viewName As String = "{7137FFF8-48FF-4C69-8C76-0E3BBD1EA7F9}" Dim rowLimit As String = "150" 'Use the CreateElement method of the document object to create 'elements for the parameters that use XML. Dim query As System.Xml.XmlElement = xmlDoc.CreateElement("Query") Dim viewFields As System.Xml.XmlElement = xmlDoc.CreateElement("ViewFields") Dim queryOptions As System.Xml.XmlElement = xmlDoc.CreateElement("QueryOptions") 'To specify values for the parameter elements (optional), assign CAML fragments to the InnerXml property of each element. query.InnerXml = "<Where><Gt><FieldRef Name=""ID"" />" + "<Value Type=""Counter"">3</Value></Gt></Where>" viewFields.InnerXml = "<FieldRef Name=""Title"" />" queryOptions.InnerXml = "" 'Declare an XmlNode object and initialize it with the XML response 'from the GetListItems method. The last parameter specifies 'the GUID of the Web site containing the list. Setting it to 'Nothing causes the Web site specified by the Url property 'to be used. Dim nodeListItems As System.Xml.XmlNode = listService.GetListItems(listName, viewName, query, viewFields, rowLimit, queryOptions, Nothing) 'Loop through each node in the XML response and display each item. Dim listItem As System.Xml.XmlNode For Each listItem In nodeListItems label1.Text += listItem.OuterXml Next listItem
/*Declare and initialize a variable for the Lists Web service.*/ Web_Reference.Lists listService = new Web_Reference.Lists(); /*Authenticate the current user by passing their default credentials to the Web service from the system credential cache.*/ listService.Credentials = System.Net.CredentialCache.DefaultCredentials; /*Set the Url property of the service for the path to a subsite.*/ listService.Url = "http://Server_Name/Subsite_Name/_vti_bin/Lists.asmx"; // Instantiate an XmlDocument object System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); /* Assign values to the string parameters of the GetListItems method, using GUIDs for the listName and viewName variables. For listName, using the list display name will also work, but using the list GUID is recommended. For viewName, only the view GUID can be used. Using an empty string for viewName causes the default view to be used.*/ string listName = "{17991794-81BB-494F-9910-CFBF1093A7CF}"; string viewName = "{7137FFF8-48FF-4C69-8C76-0E3BBD1EA7F9}"; string rowLimit = "150"; /*Use the CreateElement method of the document object to create elements for the parameters that use XML.*/ System.Xml.XmlElement query = xmlDoc.CreateElement("Query"); System.Xml.XmlElement viewFields = xmlDoc.CreateElement("ViewFields"); System.Xml.XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions"); /*To specify values for the parameter elements (optional), assign CAML fragments to the InnerXml property of each element.*/ query.InnerXml = "<Where><Gt><FieldRef Name=\"ID\" />" + "<Value Type=\"Counter\">3</Value></Gt></Where>"; viewFields.InnerXml = "<FieldRef Name=\"Title\" />"; queryOptions.InnerXml = ""; /* Declare an XmlNode object and initialize it with the XML response from the GetListItems method. The last parameter specifies the GUID of the Web site containing the list. Setting it to null causes the Web site specified by the Url property to be used.*/ System.Xml.XmlNode nodeListItems = listService.GetListItems (listName, viewName,query,viewFields,rowLimit,queryOptions,null); /*Loop through each node in the XML response and display each item.*/ foreach (System.Xml.XmlNode listItem in nodeListItems) { label1.Text += listItem.OuterXml; }
Nota
Debe proporcionar sus propios valores para las variables listName, viewName y rowLimit que se usan en el ejemplo.
En el menú Depurar, haga clic en Iniciar para probar el formulario. Haga clic en Button1 para mostrar la lista de elementos desde la lista especificada.