ExtJS - 使用参数加载存储

时间:2015-06-04 08:23:58

标签: extjs parameters load store extjs3

我正在尝试使用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 ?}*/ );

感谢您阅读。

编辑1:

我已按照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 ....

我的参数不在“查询字符串参数”中,是正常的吗?

1 个答案:

答案 0 :(得分:1)

使用代理配置向控制器发送额外的参数:

store.proxy.extraParams = { id1 : '300', id2: '22', ... };
store.load();