而不是从我的商店检索单行数据,我如何修改以下代码以检索所有记录?只需检索商店中的所有记录
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,并且存储中的最后一条记录。
谢谢我有一个checkColumn,我想一次只能选择一个复选框。 store.data.items像一个魅力一样工作。 – LeoSarena
我认为这并不完全正确,因为getRange()
将检索商店首页中的所有记录。
如果您的商店每页有50条记录,那么store.getRange()
将只给您前50条记录。
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.
....
....
}
这将刷新存储与所有记录:
store.load({start:0, limit: store.totalCount, page:1});
采取一切记录从卖场:
var records = store.getRange();`
'store.getRange()'应该可以工作,或者你可以做'store.data.items'。对于'getRange()'调用,传递任何参数只是默认为0,并且存储中的最后一条记录。 –
这工作!先生,你是一个天才。 –
把它扔在一个答案,所以我可以给一个upvote! –