如何从我的商店中检索单行数据,如何修改以下代码以检索所有记录?
var store = Ext.data.StoreManager.lookup('MyStore');
store.setProxy({
type: 'pagingmemory',
data: store.getAt(0)
});
store.load();
有什么想法?
答案 0 :(得分:8)
您可以使用store.getRange()
,也可以使用store.data.items
。对于getRange()
调用,传递没有参数只是默认为0和商店中的最后一条记录。
答案 1 :(得分:6)
我认为这不完全正确,因为getRange()
将从商店第一页检索所有记录。
如果您的商店每页有50条记录,那么store.getRange()
将只提供前50条记录。
答案 2 :(得分:0)
store.getRange()
如果网格未定义为具有缓冲存储,将仅检索当前处理的页面。可以将商店设置为缓冲:
(buffered: true)
但这会降低性能,因为即使要检索单个页面,整个页面也会被缓冲。
我想到的最有效的方法是:
var pageSize = store.pageSize // will return the page size.
var totalCount = store.totalCount // This will return total no of items
for (var i=0; i<(totalCount/pageSize)+1;i++) {
store.loadPage(i) // this will set the current page of the store to i variable.
....
....
}
答案 3 :(得分:0)
这将使用所有记录重新加载商店:
store.load({start:0, limit: store.totalCount, page:1});
从商店获取所有记录:
var records = store.getRange();`