我们正在编写一些代码来控制从Tridion Broker数据库查询(使用API)返回的结果的分页。Tridion分页 - 获取结果总数
我们使用的是SDL Tridion 2011 SP1,并且可以使用PagingFilter获取所选页面上组件的tcmIds。
但是,在写出分页控件时,我们需要知道结果的总数(以确定将有多少页)。有没有一种更有效的机制来完成这个工作,而不仅仅是为'全部'结果运行一个单独的查询并对字符串数组返回一个.Length? (显然你只会运行这个查询一次,并保持该值,因为用户点击页面之间)
如果我们得到所有的结果,那么为什么我会打扰使用PagingFilter,当我们可以只处理返回的信息在'全部'查询中?
很多感谢, 乔纳森
注意:有可能会是一个最大的2000个结果返回的任何一种类型的。
我知道前内容交付返回的对象被缓存,但现在(完全匹配)代理查询被缓存(自Tridion 2011?) - _也许_可能是使用特定过滤器的原因?我已经看到了基于JavaScript的分页,但不能确定比两种查询方法更好的想法。 – 2012-03-23 13:25:48
伟大的问题乔恩,看起来不像你可以做一个“COUNT(....)”风格的查询。 – Neil 2012-03-23 13:55:06
谢谢尼尔。是的,我们认为可能还有更有效的COUNT(...)机制。 如果你知道有多少页面或者不需要知道有多少页面(并且处理有效返回的空数组),那么PagingFilter方法非常有用,但是我认为这很少见。 – 2012-03-23 14:21:01