3

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

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

有什么想法吗?

4

4 回答 4

8

您可以使用store.getRange(),也可以使用store.data.items. 对于getRange()调用,不传递任何参数默认为 0 和存储中的最后一条记录。

于 2013-08-20T18:23:23.123 回答
6

我认为这并不完全正确,因为getRange()将从商店首页检索所有记录。

如果您的商店每页有 50 条记录,store.getRange()则只会给您前 50 条记录。

于 2013-09-18T09:11:37.507 回答
1

这将使用所有记录重新加载商店:

store.load({start:0, limit: store.totalCount, page:1});

从存储中获取所有记录:

var records = store.getRange();`
于 2016-12-09T13:39:46.630 回答
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.  
         ....
         ....
    }
于 2015-11-18T16:43:30.807 回答