2
我有一個非常大的列表包含超過200 000條記錄,但我通過增加視圖閾值級別獲取記錄。但所有這些使得應用程序非常慢,所以我正在尋找高效和標準的解決方案來從大列表中獲取項目。怎樣才能避免在大型列表(超過200K項目)Sharepoint 2010閾值錯誤
我有一個非常大的列表包含超過200 000條記錄,但我通過增加視圖閾值級別獲取記錄。但所有這些使得應用程序非常慢,所以我正在尋找高效和標準的解決方案來從大列表中獲取項目。怎樣才能避免在大型列表(超過200K項目)Sharepoint 2010閾值錯誤
你需要在你的fecthes使用分頁,並確保,如果你在你的列
過濾設置適當的指標有一個看看這篇文章在MSDN上:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.listitemcollectionposition.aspx
這個片段將分批重複列表10:
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);
}