【发布时间】:2013-09-11 22:49:29
【问题描述】:
我需要能够从位于内存中的缓存记录之外的远程/代理存储中检索记录。有没有办法用 Ext 做到这一点?文档帮助不大。
所以我有一个正常的商店,可以很好地处理分页或缓冲滚动
store = Ext.create('Ext.data.DirectStore', {
autoLoad: true,
pageSize: 30,
remoteFilter: true,
remoteSort: true,
proxy: Ext.create('Ext.data.proxy.Direct', {...});
}
我的商店目前包含 97 个项目,但只有 30 个被缓存
console.log('store',store.getTotalCount()); // outputs 97
console.log('RANGE', store.getRange().length); // outputs 30
var count = 0;
store.queryBy(function (record) {
console.log(++count); // outputs 0 -> 30
return true;
});
所以无论我在queryBy 函数中放入什么逻辑,都只测试了30 条缓存记录。我尝试在商店中使用filterBy 和remoteFilter 设置,但这给出了相同的结果。那么我可以尝试其他任何技术吗?
【问题讨论】:
-
出于好奇,
store.data.length返回什么? -
返回和getRange().length一样,30
-
分页就是这样工作的,只有从服务器返回的数据才会加载到存储中。
-
@EvanTrimboli 好点,我忽略了这一点。
totalCount(由getTotalCount()返回)是根据服务器响应中的totalProperty值设置的。 -
备份一下,您要解决的问题是什么?看起来商店确实在这方面与您抗衡,也许还有其他方式。
标签: javascript extjs extjs4.1