2013-08-20 31 views
3

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

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

有什么想法?

+0

'store.getRange()'应该可以工作,或者你可以做'store.data.items'。对于'getRange()'调用,传递任何参数只是默认为0,并且存储中的最后一条记录。 –

+0

这工作!先生,你是一个天才。 –

+0

把它扔在一个答案,所以我可以给一个upvote! –

回答

8

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

+0

谢谢我有一个checkColumn,我想一次只能选择一个复选框。 store.data.items像一个魅力一样工作。 – LeoSarena

6

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

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

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. 
     .... 
     .... 
    } 
0

这将刷新存储与所有记录:

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

采取一切记录从卖场:

var records = store.getRange();` 
相关问题