ExtJS - загрузить хранилище с параметрами

Я пытаюсь загрузить хранилище с параметрами, чтобы отфильтровать мои данные (как "где" в SQL), однако я не нашел, как это сделать... Поэтому я сделал фильтр при загрузке хранилища, чтобы сделать это но когда данных много, появляются лаги, потому что они загружают все данные и затем фильтруют их.

Можно ли загрузить магазин с параметрами? Я пробовал например:

store.load({
     params: { id : '300'},
});

Но это не работает..

Вот мой код; (Я использую ExtJS3.4 в модуле GroupOffice (модель MVC), поэтому вы можете увидеть "GO.", ...).

Я объявляю мой магазин

GO.gestionfrais.storeAffichageMesFrais = new GO.data.JsonStore({                
url: GO.url('gestionfrais/frais/store'), // URL to my model
                fields: ['id',...], 
//              method: 'POST', // Have I to write this line ?
//              read: 'POST',
                model: 'GO\\Gestionfrais\\Model\\Frais',
        });

Затем я создал свой фильтр:

GO.gestionfrais.storeAffichageMesFrais.on('load', function(){
     GO.gestionfrais.storeAffichageMesFrais.filterBy( function(record, id) { 
          if(record.get("id_user") == id_currentUser && record.get('archive') == 'Non' ) { 
               return true;
          }
          return false;
     }, this);
});

И наконец я загружаю свой магазин

GO.gestionfrais.storeAffichageMesFrais.load( /*{params ?}*/ );

Спасибо, что читаете меня.

РЕДАКТИРОВАТЬ 1:

Я изменил декларацию магазина по следующей ссылке:

GO.gestionfrais.storeAffichageMesFrais = new GO.data.JsonStore({
        // store configs
        autoDestroy: true,
        url: GO.url('gestionfrais/frais/store'),
        storeId: 'storeAffichageMesFrais',
        // reader configs
        root: 'results',
        idProperty: 'results',
        fields: ['id', 'id_user', 'user', 'id_resp','demandeur', 'mois', 'prixTotal', {name: 'dateCreation', type: 'date', dateFormat: 'd-m-Y'}, 'etat', {name: 'dateSoumission', type: 'date', dateFormat:'d-m-Y'}, 'archive', {name: 'dateValidation', type: 'date', dateFormat: 'd-m-Y'}], // On récupère les champs qui nous intéressent (soit ceux à afficher).
        //Added
        model: 'GO\\Gestionfrais\\Model\\Frais',
});

Затем я попытался загрузить хранилище с параметрами (id=320), и я вижу это в шапке:

Параметр строки запроса
-> r: gestionfrais / frais / store
-> security_token:ITy...

Данные формы
-> id: 320
-> сортировать: id
-> dir:ASC -> security_token:ITyc ....

Мой параметр не указан в "Query String Parameters", это нормально?

1 ответ

Используйте конфигурацию прокси для отправки дополнительных параметров вашему контроллеру:

store.proxy.extraParams = { id1 : '300', id2: '22', ... };
store.load();
Другие вопросы по тегам