Метод Lists.GetListItems
Возвращает сведения об элементах в списка по указанному запросу.
Пространство имен: WebSvcLists
Сборка: STSSOAP (в STSSOAP.dll)
Синтаксис
'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItems", RequestNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
ResponseNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function GetListItems ( _
listName As String, _
viewName As String, _
query As XmlNode, _
viewFields As XmlNode, _
rowLimit As String, _
queryOptions As XmlNode, _
webID As String _
) As XmlNode
'Применение
Dim instance As Lists
Dim listName As String
Dim viewName As String
Dim query As XmlNode
Dim viewFields As XmlNode
Dim rowLimit As String
Dim queryOptions As XmlNode
Dim webID As String
Dim returnValue As XmlNode
returnValue = instance.GetListItems(listName, _
viewName, query, viewFields, rowLimit, _
queryOptions, webID)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/GetListItems", RequestNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
ResponseNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public XmlNode GetListItems(
string listName,
string viewName,
XmlNode query,
XmlNode viewFields,
string rowLimit,
XmlNode queryOptions,
string webID
)
Параметры
listName
Тип: System.StringСтрока, содержащая отображаемое имя или идентификатор GUID для списка. Рекомендуется использовать идентификатор GUID, который должны быть заключены в фигурные скобки ({}). При выполнении запроса в таблице UserInfo, строка содержит «Данные_пользователя».
viewName
Тип: System.StringСтрока, содержащая GUID для представления, заключенные в фигурные скобки ({}), определяющий представление для атрибутов представление по умолчанию, представленные с помощью параметров query, viewFieldsи rowLimit . Если этот параметр содержит пустая строка, представление по умолчанию используется. Если предоставлен идентификатор GUID представления, значение параметра query, viewFieldsили rowLimit переопределяет эквивалентный параметр в представлении. Например если представления, указанного с помощью параметра viewFields которого настроено ограничение строк 100 строк, но параметр rowLimit содержит 1000, 1000 строк возвращаются в ответе.
query
Тип: System.Xml.XmlNodeЭлемент Query , содержащий запрос, который определяет, какие записи возвращаемые и в какой порядке, который можно назначить объект System.Xml.XmlNode , как показано в следующем примере.
viewFields
Тип: System.Xml.XmlNodeЭлемент ViewFields , которое указывает, какие поля для возврата в запросе и в каком порядке и могут быть назначены System.Xml.XmlNode объекта, как показано в следующем примере.
rowLimit
Тип: System.StringСтрока, которая указывает количество элементов или строк для отображения на странице перед началом разбиение на страницы. Если задан, этот параметр переопределяет ограничение строк в представлении, указанного с помощью параметра viewName или строку предел, установленный в представление по умолчанию для списка.
queryOptions
Тип: System.Xml.XmlNodeФрагмент XML в следующей форме, которая содержит отдельные узлы для различных свойств объекта SPQuery , который может быть назначен в объект System.Xml.XmlNode .
webID
Тип: System.StringНеобязательный атрибут. Строка, содержащая GUID родительского веб-сайта для списка, заключенные в фигурные скобки ({}). Этому параметру означает, что пустая ссылка (Nothing в Visual Basic) веб-сайта, указанного идентификатором Url свойства службы будет использоваться, и если свойство Url службы не указан, будут использоваться корневого веб-сайта.
Возвращаемое значение
Тип: System.Xml.XmlNode
Фрагмент XML в следующей форме, которая содержит сведения об элементах списка и может быть назначены объект System.Xml.XmlNode .
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
xmlns="https://schemas.microsoft.com/sharepoint/soap/">
<rs:data ItemCount="4">
<z:row ows_Number_Field="6555.00000000000"
ows_Created="2003-06-18T03:41:09Z"
ows_ID="3" ows_owshiddenversion="3" />
<z:row ows_Number_Field="78905456.0000000"
ows_Created="2003-06-18T17:15:58Z"
ows_ID="4" ows_owshiddenversion="2" />
...
</rs:data>
</listitems>
Замечания
Метод GetListItems поддерживает разбиение на страницы на сервере. XML-данные, возвращаемые данным методом включает атрибут ListItemCollectionPositionNextrs:Data элемент, который содержит данные для поддержки разбивки по страницам. Эта строка содержит данные для полей в списке Сортировать и для других элементов, необходимых для разбивки по страницам. Эта строка необходимо учитывать внутренних и не изменять; Изменение он может привести к непредсказуемым последствиям. В следующем примере показано формы это возвращаемое значение, если поддерживается разбиение на страницы.
<rs:Data ListItemCollectionPositionNext="
Paged=TRUE&p_ID=100&View=
%7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
101" Count=1000 >
<z:row ows_FirstName="Nancy" ows_LastName="Name" ….. />
...
</rs:Data>
Для получения следующей страницы данных, используется параметр queryOption , как показано в следующем примере.
<QueryOptions>
<Paging ListItemCollectionPositionNext="
Paged=TRUE&p_ID=100&View=
%7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
101" />
</QueryOptions>
Примеры
В следующем примере кода отображаются элементы, где поле Number содержит значение больше 5 000, а поле DateTime содержит значение больше указанной даты. В примере используется объект XmlDocument для создания объектов XmlNode для параметров.
В этом примере требуется директива Imports (Visual Basic) была включена в пространство имен System.Xml или using (Visual C#).
Dim listService As New Web_Reference_Folder.Lists()
listService.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim xmlDoc = New System.Xml.XmlDocument()
Dim ndQuery As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "Query", "")
Dim ndViewFields As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "")
Dim ndQueryOptions As XmlNode =
xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "")
ndQueryOptions.InnerXml =
"<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + _
"<DateInUtc>TRUE</DateInUtc>"
ndViewFields.InnerXml =
"<FieldRef Name='Field1'/><FieldRef Name='Field2'/>"
ndQuery.InnerXml =
"<Where><And><Gt><FieldRef Name='Field1'/>" + _
"<Value Type='Number'>5000</Value></Gt><Gt>
<FieldRef Name='Field2'/>" + _
"<Value Type='DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>"
Try
Dim ndListItems As XmlNode =
listService.GetListItems("List_Name", Nothing, ndQuery, _
ndViewFields, Nothing, ndQueryOptions, Nothing)
MessageBox.Show(ndListItems.OuterXml)
Catch ex As System.Web.Services.Protocols.SoapException
MessageBox.Show("Message:" + ControlChars.Lf + ex.Message +
ControlChars.Lf +
"Detail:" + ControlChars.Lf + ex.Detail.InnerText +
ControlChars.Lf +
"StackTrace:" + ControlChars.Lf + ex.StackTrace)
End Try
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element,"Query","");
XmlNode ndViewFields =
xmlDoc.CreateNode(XmlNodeType.Element,"ViewFields","");
XmlNode ndQueryOptions =
xmlDoc.CreateNode(XmlNodeType.Element,"QueryOptions","");
ndQueryOptions.InnerXml =
"<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" +
"<DateInUtc>TRUE</DateInUtc>";
ndViewFields.InnerXml = "<FieldRef Name='Field1' />
<FieldRef Name='Field2'/>";
ndQuery.InnerXml = "<Where><And><Gt><FieldRef Name='Field1'/>" +
"<Value Type='Number'>5000</Value></Gt><Gt><FieldRef Name='Field2'/>" +
"<Value Type=
'DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>";
try
{
XmlNode ndListItems =
listService.GetListItems("List_Name", null, ndQuery,
ndViewFields, null, ndQueryOptions, null);
MessageBox.Show(ndListItems.OuterXml);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" +
ex.Detail.InnerText +
"\nStackTrace:\n" + ex.StackTrace);
}