Extjs中store的filter和filterBy的用法

在Extjs设计界面,很多时候并不需要将所有的数据都显示到界面上,这样子我们可以通过在创建store时添加filter属性或调用filterBy方法实现。

1、设计时设置filter属性

//数据模型Model
Ext.define('model.AppProject', {
extend:'Ext.data.Model',
fields:[
{name:'indexIdApp',mapping:'application>indexId'},
{name:'orgNameApp', mapping:'application>orgName'},
{name:'verifyResultApp', mapping:'application>verifyResultApp',type:'int'}
]
});

//创建store
var proAppStore = Ext.create('Ext.data.Store', {
model: 'model.AppProject',
autoLoad:true,
filterOnLoad:true,
proxy:{
type: 'ajax',
method:'post',
extraParams:{headValue:RetrieveAppProject,bodyValue:"indexId:*^^",handleMsg:AppRetrieveMsg},
url : 'HTPApp.CSP.ServiceProxy.cls',
reader:{
type:'xml',
record:'EvaluateOrg',
totalRecords:'@total'
}
},
filters: [
{//添加过滤掉未审核和审核未通过的申请
property: 'verifyResultApp',
value : /^\+?[1-9]*$/

}
]

});

以上代码中在创建的时候设置filters时,限定model中verifyResultApp为正整数,其中用到正则表达式,值得注意的是,我们需要在store中添加filterOnLoad:true,这样在加载的时候这个过滤就会有效果。

2、在需要过滤的时候调用filterBy方法

proAppStore.filterBy(function(record) {
return record.get('orgNameApp') == "IT";
});

如上代码我们就可以得到'orgNameApp'为IT的数据

当然多个条件限制时可以在return的时候用&&连接

return record.get('verifyResultApp') == 0&&record.get('orgNameApp') == orgNameQuik

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值