确定SPQuery返回的项的总计数

Mag*_*ndi 3 sharepoint caml sharepoint-2010

我正在针对SharePoint 2010中的大型列表运行多个CAML查询,并将结果以gridview的形式显示给最终用户.我希望翻阅查询返回的结果以提高性能.但是,我需要在分页控件上显示查询返回的项目总数.我的问题是,如何确定每个查询将返回的项目总数,而不是在单个SPListItemCollection中实际返回它们?确切地说,我希望一次翻阅结果10个项目; 我怎么能这样做,仍然有查询返回的所有项目的总数?

更新

到目前为止,所给出的答案都没有解决我的问题 - 因此,我正在提供赏金.我需要能够获得CAML查询将返回的项目总数,而无需运行查询并返回所有项目.这将使我能够向最终用户显示此总计数值(设置要求),同时在项目集合中进行分页以在网格视图中显示特定的结果页面.这将避免包含gridview首次加载的页面上的大型列表的大量性能损失.

如果没有人提供上述的有效答案,我将接受一个答案,该答案提供了MSDN文章的链接,该文章明确指出无法实现上述功能.

谢谢,MagicAndi.

Kit*_*nke 8

不幸的是,我不认为你会得到从MSDN说什么明确的答案是不是有可能...只有什么.这是msdn上的整个CAML查询模式页面.那里没有提到任何类型的"计数"功能.

至于解决问题,首先需要选择正确的方法来查找项目.例如,以下是几个案例:

  1. 一个列表中的项目?CAML
  2. 同一网站中几个列表中的项目?SPSiteDataQuery
  3. 许多网站中许多列表中的项目?搜索API

其次,您可以在Web部件中实现某种缓存,以减少排序/分页/过滤所需的时间.我喜欢使用System.Web.HttpRuntime.Cache存储a DataTable(当网格可以继续使用数据表时,可以很容易地更改检索项目的方法).您也可以使用Page.Session而不是缓存.