只需从商店中检索所有记录即可

时间:2013-08-20 16:13:00

标签: javascript extjs rows store

如何从我的商店中检索单行数据,如何修改以下代码以检索所有记录?

var store = Ext.data.StoreManager.lookup('MyStore');
        store.setProxy({
            type: 'pagingmemory',
            data: store.getAt(0)
          });
        store.load();

有什么想法?

4 个答案:

答案 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();`