我如何修改以下代码来检索所有记录,而不是从我的商店中检索单行数据?
var store = Ext.data.StoreManager.lookup('MyStore');
store.setProxy({
type: 'pagingmemory',
data: store.getAt(0)
});
store.load();
有什么想法吗?
我如何修改以下代码来检索所有记录,而不是从我的商店中检索单行数据?
var store = Ext.data.StoreManager.lookup('MyStore');
store.setProxy({
type: 'pagingmemory',
data: store.getAt(0)
});
store.load();
有什么想法吗?
您可以使用store.getRange()
,也可以使用store.data.items
. 对于getRange()
调用,不传递任何参数默认为 0 和存储中的最后一条记录。
我认为这并不完全正确,因为getRange()
将从商店首页检索所有记录。
如果您的商店每页有 50 条记录,store.getRange()
则只会给您前 50 条记录。
这将使用所有记录重新加载商店:
store.load({start:0, limit: store.totalCount, page:1});
从存储中获取所有记录:
var records = store.getRange();`
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.
....
....
}