首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定SPQuery返回的项目总数

确定SPQuery返回的项目总数
EN

Stack Overflow用户
提问于 2010-10-27 10:06:05
回答 8查看 20.6K关注 0票数 3

我正在针对SharePoint 2010中的一个大列表运行许多CAML查询,并在网格视图中向最终用户显示结果。我希望浏览查询返回的结果,以提高性能。但是,我需要在分页控件上显示查询返回的项的总数。我的问题是,如何确定每个查询将返回的总项数,而不实际在单个SPListItemCollection中返回它们?准确地说,我希望一次分页查看结果10项;如何做到这一点,并且仍然有查询返回的所有项的总数?

更新

到目前为止,没有人回答我的问题我需要能够得到CAML查询返回的条目总数,而不必运行查询并返回所有项。这将使我能够向最终用户显示这个总计数值(一个设置的要求),同时分页遍历items集合,以便在网格视图中显示特定的结果页。这将避免对包含网格视图第一次加载的页面上的大型列表产生巨大的性能影响。

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

谢谢,MagicAndi。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-11-03 20:14:49

不幸的是,我不认为你会得到一个明确的答案,从MSDN说什么是不可能的.只有。这是整个CAML Query Schema page on msdn。没有提到任何类型的“计数”函数。

至于解决你的问题,首先你需要选择正确的方法来寻找项目。例如,这里有几个案例:

  1. 项目从一个列表?来自同一站点中的两个列表的CAML
  2. 项目?来自多个站点列表的SPSiteDataQuery
  3. Items?搜索API

其次,您可以在web部件中实现某种类型的缓存,以减少排序/页/筛选所需的时间。我喜欢使用System.Web.HttpRuntime.Cache来存储DataTable (这样可以轻松地更改检索项的方法,而网格可以继续使用datatable)。您也可以使用Page.Session而不是缓存。

票数 8
EN

Stack Overflow用户

发布于 2010-10-27 14:06:44

这是一个SharePoint限制。这就是为什么SharePoint没有显示视图中有多少页。

票数 2
EN

Stack Overflow用户

发布于 2010-10-29 07:00:11

您可以为该列表创建一个视图,每页的项限制为10。然后使用listview控件(而不是gridview)并绑定视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4031998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档