Поделиться через


Свойство SPQuery.RowLimit

Возвращает или задает предельное количество элементов, возвращаемых в запросе на одной странице.

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

Синтаксис

'Декларация
Public Property RowLimit As UInteger
    Get
    Set
'Применение
Dim instance As SPQuery
Dim value As UInteger

value = instance.RowLimit

instance.RowLimit = value
public uint RowLimit { get; set; }

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

Тип: System.UInt32
32-разрядное целое число без знака, задающее предел количества строк.

Замечания

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

Свойство RowLimit используется совместно со свойством ListItemCollectionPosition для определения разбиения по страницам в запросе. В частности объект SPListItemCollectionPosition , который хранится в свойстве ListItemCollectionPosition используется для перебора всех элементов в коллекции n элементов одновременно, где n — значение, заданное ограничение на строки.

Примечание

Сведения об использовании запросов, встроенных в язык запросов (LINQ) для извлечения элементов списка в SharePoint FoundationManaging Data with LINQ to SharePointсм.

Примеры

В следующем примере кода используются свойства классов SPListItemCollection и SPQueryListItemCollectionPosition возвращает объект SPListItemCollectionPosition для хранения где каждая страница данных заканчивается в коллекции элементов и отображает названия элементов в группы по 10 строк. В этом примере предполагается, что список является библиотекой документов или включения в списке папок. В примере также предполагается, что в список включены поля с внутренним именем «Field1» и с внутренним именем «Поле2».

В этом примере требуется директивы using (Imports в Microsoft Visual Basic) для пространства имен Microsoft.SharePoint и Microsoft.SharePoint.Utilities .

Dim webSite As SPWeb = SPContext.Current.Site.RootWeb
Try
    Dim list As SPList = webSite.Lists("Announcements")
    Dim query As New SPQuery()
    query.RowLimit = 10    
    query.Query = "<OrderBy Override=\"TRUE\">" + _ 
        "<FieldRef Name=\"FileLeafRef\" /></OrderBy>";
    Dim i As Integer = 1

    Do
        Response.Write(("<BR>Page: " + i + "<BR>"))
        Dim listItems As SPListItemCollection = list.GetItems(query)

        Dim listItem As SPListItem
        For Each listItem In  listItems
            Response.Write((SPEncode.HtmlEncode(listItem("Title")) + _
              "<BR>"))
        Next listItem

        query.ListItemCollectionPosition = _
          listItems.ListItemCollectionPosition
        i += 1
    Loop While Not (query.ListItemCollectionPosition Is Nothing)
Finally
    webSite.Dispose()
End Try
using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)
{
    SPList oList = oWebsiteRoot.Lists["Announcements"];
    SPQuery oQuery = new SPQuery();
    oQuery.RowLimit = 10;
    oQuery.Query = "<OrderBy Override=\"TRUE\">" +
         "<FieldRef Name=\"FileLeafRef\" /></OrderBy>";
    int intIndex = 1;

    do
    {
        Response.Write("<BR>Page: " + intIndex + "<BR>");
        SPListItemCollection collListItems = oList.GetItems(oQuery);

        foreach(SPListItem oListItem in collListItems)
        {
            Response.Write(SPEncode.HtmlEncode(oListItem["Title"]) + 
              "<BR>");
        }
        oQuery.ListItemCollectionPosition = 
          collListItems.ListItemCollectionPosition;
        intIndex++;
    } while(oQuery.ListItemCollectionPosition != null);
}

В следующем примере кода используется свойство RowLimit для указания более 50 элементов на странице, возвращаемых в запросе.

В этом примере требуется директивы using (Imports в Visual Basic) для пространства имен Microsoft.SharePoint и Microsoft.SharePoint.Utilities .

Dim webSite As SPWeb = SPContext.Current.Site.AllWebs["Site_Name"]
Try
    Dim list As SPList = webSite.Lists("List_Name")

    Dim query As New SPQuery()
    query.ViewFields = "<FieldRef Name='Field1'/>" + _
        "<FieldRef Name='Field2'/>"
    query.RowLimit = 50
    Dim items As SPListItemCollection = list.GetItems(query)

    Dim item As SPListItem
    For Each item In  items
        Response.Write((SPEncode.HtmlEncode(item.Xml) + "<BR>"))
    Next item
Finally
    webSite.Dispose()
End Try
using (SPWeb oWebsite = SPContext.Current.Site.AllWebs["Website_Name"])
{
    SPList oList = oWebsite.Lists["List_Name"];

    SPQuery oQuery = new SPQuery();
    oQuery.ViewFields = "<FieldRef Name='Field1'/>" +
        "<FieldRef Name='Field2'/>";
    oQuery.RowLimit = 50;
    SPListItemCollection collListItems = oList.GetItems(oQuery);

    foreach (SPListItem oListItem in collListItems)
    {
        Response.Write(SPEncode.HtmlEncode(oListItem.Xml) + "<BR>");
    }
}

Примечание

Некоторые объекты реализуют интерфейс IDisposable и следует избегать сохранения этих объектов в памяти, после они больше не нужны. Disposing Objectsсведения о рекомендованные методы программирования, см.

См. также

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

SPQuery класс

Элементы SPQuery

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