Свойство 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сведения о рекомендованные методы программирования, см.