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);
}