我试图在Dojo中设置分页。我基本上有一个包含数千条记录的表,我希望逐页显示它们而不是一次性显示。我正在使用带有JsonRest存储的dgrid。根据JsonRest的文档,商店使用HTTP"范围:"标头执行分页。当对一系列商品发出请求时,商店将包含一个"范围:"带有指定范围的项目范围单位的标题。 (http://dojotoolkit.org/reference-guide/1.10/dojo/store/JsonRest.html)不幸的是,这是一个很大的问题,因为我们的一些用户落后于过滤掉HTTP范围标头的代理。我看到的唯一解决方法是使用查询字符串参数而不是"范围:" HTTP标头。所以我有一个看起来像这样的网址: http://myhost.com/myapp/things?start=10&end=19 而不是让范围标题为"范围:项目= 0-24"
我将如何解决这个问题?如果您对替代解决方法有建议,那么也会非常感激。
答案 0 :(得分:1)
我找到了一个简单的解决方案。在创建dgrid时,只需覆盖Dojo的JsonRest类并使用它而不是JsonRest。
define(["dojo/_base/declare", "dojo/store/JsonRest"], function(declare, JsonRest){
var base = JsonRest;
return declare("myapp.JsonRest2", base, {
query: function(query, options){
if(options.start >= 0 || options.count >= 0){
query.start = options.start >= 0 ? options.start : 0;
query.count = options.count >= 0 ? options.count : 10;
}
return this.inherited(arguments);
}
});
});