Свойство SPSiteDataQuery.Lists

Получает или задает внутреннее XML-код, который указывает, какие списки, чтобы включить в запрос.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Property Lists As String
    Get
    Set
'Применение
Dim instance As SPSiteDataQuery
Dim value As String

value = instance.Lists

instance.Lists = value
public string Lists { get; set; }

Значение свойства

Тип: System.String
XML-строка, содержащее идентификатор целое число, определяющее тип списка или идентификаторы GUID, которые задают идентификаторы списков.

Замечания

Элемент верхнего уровня в строке должны быть Lists.

Атрибуты списков

Поддерживаемые необязательные атрибуты для тега Lists относятся следующие:

  • ServerTemplate --ограничения запроса к спискам шаблона указанного сервера. По умолчанию этот атрибут не задан и запрос не только для списков на основе определенного шаблона.

    Пример: <Lists ServerTemplate="104" />

  • BaseType --ограничения запроса к спискам указанного базового типа. По умолчанию запрос учитывает списки BaseType 0 (универсальные списки).

    Пример: <Lists BaseType="1" />

    В следующей таблице приведены возможные значения для атрибута.

    Значение

    Описание

    0

    Общий список

    1

    Библиотека документов

    3

    Форум для обсуждения

    4

    Голос или опроса

    5

    IssuesList

  • Hidden --определяет, будет ли запрос включает скрытые списки. По умолчанию запрос считает все списки, не являющиеся скрытыми.

    Пример: <Lists Hidden = "TRUE />

  • MaxListLimit --ограничивает запрос с общим количеством указан списков. Если запрос превышает ограничение, запрос вместо происходит сбой и вызывает SPException. По умолчанию ограничение составляет 1000. Если параметр имеет значение 0, неограниченное число списков, которые считаются.

    Пример: <Lists MaxListLimit="500" />

Дочерние элементы списков

Возможные дочерние элементы тега Lists относятся List и WithIndex.

  • Тег List позволяет запроса, чтобы включить определенные списки, вместо того чтобы возвращать все списки определенного типа. Атрибут ID определяет каждого списка. Пример:

    <Lists>
      <List ID="7A9FDBE6-0841-430a-8D9A-53355801B5D5" />
      <List ID="3D18F506-FCA1-451e-B645-2D720DC84FD8" />
    </Lists>
    
  • Тег WithIndex является необязательным и дочерним для Lists и, если этот параметр указан, запрос не может превышать списки, содержащие индексированных полей.

    Предупреждение

    Запросы, использующие WithIndex приведет к снижения производительности для семейства веб-сайтов с большим числом элементов. WithIndex предоставляется только для обратной совместимости, и его использование не рекомендуется.

    Элемент WithIndex имеет три обязательные атрибуты: FieldId, Valueи Type. Атрибут Type должен иметь значение Text. В следующем примере запрос учитывает только списки, содержащие элементы индексируются и текстовое значение «Завершено», указанного в поле.

    <Lists>
      <WithIndex FieldId="D4819257-6B69-41F1-82C8-A91615BFF500" Type="Text" Value="Complete" />
    </Lists>
    

Примеры

Следующий пример является консольное приложение, которое получает данные из всех списков, созданных на основе шаблона списка контактов.

Imports System
Imports System.Data
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using site As SPSite = New SPSite("https://localhost")
         Using web As SPWeb = site.OpenWeb()

            Dim query As SPSiteDataQuery = New SPSiteDataQuery()

            ' Query all Web sites in this site collection.
            query.Webs = "<Webs Scope='SiteCollection'>"

            ' Ask for all lists created from the contacts template.
            query.Lists = "<Lists ServerTemplate='105' />"

            ' Get the Title (Last Name) and FirstName fields.
            query.ViewFields = "<FieldRef Name='Title' />"
            query.ViewFields += "<FieldRef Name='FirstName' Nullable='TRUE'/>"

            Dim results As DataTable = web.GetSiteData(query)

            For Each row As DataRow In results.Rows
               Console.WriteLine("{0} {1}", row("FirstName"), row("Title"))
            Next

         End Using
      End Using
      Console.ReadLine()
   End Sub
End Module
using System;
using System.Data;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("https://localhost"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               SPSiteDataQuery query = new SPSiteDataQuery();

               // Query all Web sites in this site collection.
               query.Webs = "<Webs Scope=\"SiteCollection\">";

               //Ask for all lists created from the contacts template.
               query.Lists = "<Lists ServerTemplate=\"105\" />";

               // Get the Title (Last Name) and FirstName fields.
               query.ViewFields = "<FieldRef Name=\"Title\" />"; 
               query.ViewFields += "<FieldRef Name=\"FirstName\" Nullable=\"TRUE\"/>";

               DataTable results = web.GetSiteData(query);

               foreach (DataRow row in results.Rows)
                  Console.WriteLine("{0} {1}", row["FirstName"], row["Title"]);
            }
         }
         Console.ReadLine();
      }
   }
}

См. также

Справочные материалы

SPSiteDataQuery класс

Элементы SPSiteDataQuery

Пространство имен Microsoft.SharePoint