我正在针对SharePoint 2010中的一个大列表运行许多CAML查询,并在网格视图中向最终用户显示结果。我希望浏览查询返回的结果,以提高性能。但是,我需要在分页控件上显示查询返回的项的总数。我的问题是,如何确定每个查询将返回的总项数,而不实际在单个SPListItemCollection中返回它们?准确地说,我希望一次分页查看结果10项;如何做到这一点,并且仍然有查询返回的所有项的总数?
更新
到目前为止,没有人回答我的问题我需要能够得到CAML查询返回的条目总数,而不必运行查询并返回所有项。这将使我能够向最终用户显示这个总计数值(一个设置的要求),同时分页遍历items集合,以便在网格视图中显示特定的结果页。这将避免对包含网格视图第一次加载的页面上的大型列表产生巨大的性能影响。
如果没有人提供上述的有效答案,我将接受一个给出MSDN文章链接的答案,该文章明确指出上述功能无法实现。
谢谢,MagicAndi。
发布于 2010-11-03 20:14:49
不幸的是,我不认为你会得到一个明确的答案,从MSDN说什么是不可能的.只有是。这是整个CAML Query Schema page on msdn。没有提到任何类型的“计数”函数。
至于解决你的问题,首先你需要选择正确的方法来寻找项目。例如,这里有几个案例:
其次,您可以在web部件中实现某种类型的缓存,以减少排序/页/筛选所需的时间。我喜欢使用System.Web.HttpRuntime.Cache来存储DataTable (这样可以轻松地更改检索项的方法,而网格可以继续使用datatable)。您也可以使用Page.Session而不是缓存。
发布于 2010-10-27 14:06:44
这是一个SharePoint限制。这就是为什么SharePoint没有显示视图中有多少页。
发布于 2010-10-29 07:00:11
您可以为该列表创建一个视图,每页的项限制为10。然后使用listview控件(而不是gridview)并绑定视图。
https://stackoverflow.com/questions/4031998
复制相似问题