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();