Свойство SPQuery.ListItemCollectionPosition
Получает или задает объект, который используется для получения следующего набора строк в страничного представления списка.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Property ListItemCollectionPosition As SPListItemCollectionPosition
Get
Set
'Применение
Dim instance As SPQuery
Dim value As SPListItemCollectionPosition
value = instance.ListItemCollectionPosition
instance.ListItemCollectionPosition = value
public SPListItemCollectionPosition ListItemCollectionPosition { get; set; }
Значение свойства
Тип: Microsoft.SharePoint.SPListItemCollectionPosition
Объект SPListItemCollectionPosition .
Замечания
Свойство ListItemCollectionPosition используется совместно со свойством RowLimit для определения разбиения по страницам в запросе. В частности объект SPListItemCollectionPosition используется для перебора всех элементов в коллекции n элементов одновременно, где n — значение, заданное ограничение на строки.
Примеры
В следующем примере кода используются свойства классов SPListItemCollection и SPQueryListItemCollectionPosition возвращает объект SPListItemCollectionPosition для хранения где каждая страница данных заканчивается в коллекции элементов и отображает названия элементов в группы по 10 строк. В этом примере предполагается, что список является библиотекой документов или включения в списке папок. В примере также предполагается, что в список включены поля с внутренним именем «Field1» и с внутренним именем «Поле2».
Примечание
Сведения об использовании запросов, встроенных в язык запросов (LINQ) для извлечения элементов списка в SharePoint FoundationManaging Data with LINQ to SharePointсм.
В этом примере требуется директивы 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);
}