Procédure : renvoyer des éléments de liste
Dernière modification : mercredi 7 juillet 2010
S’applique à : SharePoint Foundation 2010
Cette tâche de programmation montre comment créer un formulaire Windows utilisant la méthode GetListItems du service Web Listes pour renvoyer des éléments à partir d’une liste.
Procédures
Avant de commencer, créez une application Windows dans Microsoft Visual Studio. Pour obtenir des informations sur la définition d’une référence Web vers un service Web SharePoint Foundation, voir Conseils d'utilisation des services Web.
Pour ajouter du code afin d’afficher la collection d’éléments de liste
Après avoir créé une application Windows Forms et ajouté une référence Web, ouvrez Form1 en mode Création, ouvrez la Boîte à outils, puis faites glisser un contrôle Label et un contrôle Button vers le formulaire.
Cliquez avec le bouton droit sur le contrôle Label, cliquez sur Propriétés, puis supprimez la valeur « Label1 » de la propriété Text du contrôle.
Double-cliquez sur le bouton pour afficher l’Éditeur de code, puis ajoutez les lignes de code suivantes au gestionnaire d’événements Button1_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; }
Notes
Vous devez fournir vos propres valeurs pour les variables listName, viewName et rowLimit qui sont utilisées dans l’exemple.
Dans le menu Déboguer, cliquez sur Démarrer le débogage pour tester le formulaire. Cliquez sur le bouton dans le formulaire pour afficher les éléments dans la liste spécifiée.