我正在尝试使用params加载存储以过滤我的数据(如SQL中的“where”)但是我没有找到如何做到这一点...... 因此,我对存储负载进行了过滤以实现此目的,但是当存在许多数据时,会出现延迟,因为它会加载所有数据然后对其进行过滤。
是否可以使用params加载商店?我试过例如:
store.load({
params: { id : '300'},
});
但它不起作用..
这是我的代码; (我在GroupOffice模块(MVC模型)中使用ExtJS3.4,这就是为什么你可以看到“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 ?}*/ );
感谢您阅读。
我已按照mindparse链接修改了Store声明:
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',
});
然后我尝试用params(id = 320)加载商店,我可以在标题中看到这个:
查询字符串参数
- > R:gestionfrais /干酪/存储
- > security_token:ITy ......表格数据
- > ID:320
- >排序:ID
- > DIR:ASC - > security_token:ITyc ....
我的参数不在“查询字符串参数”中,是正常的吗?
答案 0 :(得分:1)
使用代理配置向控制器发送额外的参数:
store.proxy.extraParams = { id1 : '300', id2: '22', ... };
store.load();