SPQuery.RowLimit property
取得或設定的每一頁查詢傳回的項目數的限制。
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
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; }
Property value
Type: System.UInt32
不帶正負號的 32 位元整數,指定資料列限制。
備註
RowLimit屬性包含對應至RowLimit中的項目共同作業應用程式標記語言的值的值。
RowLimit屬性和ListItemCollectionPosition屬性用於定義在查詢中的分頁。特別是,保留在ListItemCollectionPosition屬性中的SPListItemCollectionPosition物件用來逐一查看集合的n項目中的所有項目一次n所在資料列限制為指定的值。
注意事項 |
---|
如需有關如何使用 Language-Integrated 查詢 (LINQ) 查詢來擷取清單項目,在SharePoint Foundation中的資訊,請參閱Managing Data with LINQ to SharePoint。 |
Examples
下列程式碼範例會使用的SPListItemCollection和SPQuery類別的ListItemCollectionPosition屬性來傳回SPListItemCollectionPosition物件來儲存每個資料頁的項目集合中結束,並顯示項目標題的 10 個資料列群組。此範例假設清單是文件庫或清單中已啟用資料夾。該範例也假設此清單包括內部的名稱為 「 欄位 1 」 的欄位,並使用內部名稱"Field2"的欄位。
這個範例要求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指示詞 (在 Visual Basic 的Imports ) 的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。 |