上次修改时间: 2010年7月7日
适用范围: SharePoint Foundation 2010
此编程任务说明如何创建一个 Windows 表单,此表单使用列表 Web 服务的 GetListItems 方法返回列表中的项。
过程
在开始之前,使用 Microsoft Visual Studio 创建一个 Windows 窗体应用程序。有关设置指向 SharePoint Foundation Web 服务的 Web 引用的信息,请参阅 Web 服务指南。
添加代码以显示列表项的集合
在创建 Windows 窗体应用程序和添加 Web 引用之后,在设计视图中打开"Form1",打开"工具箱",然后将 Label 控件和 Button 控件拖放到窗体上。
右键单击 Label 控件,单击"属性",然后从控件的 Text 属性中删除值"Label1"。
双击按钮以显示"代码编辑器",并将下面的代码行添加到 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; }备注
您必须为示例中使用的 listName、viewName 和 rowLimit 变量提供自己的值。
在"调试"菜单上,单击"启动调试"以测试表单。单击表单中的按钮以显示指定列表中的列表项。