2013-08-20 4 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

Бросьте это в ответ, чтобы я мог дать вам верх! –

ответ

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();` 
Смежные вопросы