Extjs中store的filter和filterBy的用法
2012-11-12 12:23
357 查看
在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
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
相关文章推荐
- Extjs store用法详解
- EXTJS中store的用法
- Extjs Store 的用法详解
- 【Extjs】Model,Store,grid.panel 用法
- Extjs学习 Store的用法
- EXTJS 4.2 资料 控件之 Store 用法
- 在extjs 4,使用combox的store的filter,但是第一次始终不起作用,第二次开始正常。
- ExtJS ComboBox 下拉列表详细用法
- groupingstore extjs
- Extjs中layout的用法总结
- jQuery里filter()函数与find()函数用法分析
- logstash filter grok 用法
- Extjs 指定 grid 和 分页工具条的 store
- Extjs4.2 grid datastore读取xml和json
- extjs4 grid store.load 时不改变滚动条位置
- jquery中的过滤filter not的用法以及可以添加this
- find()和filter()函数的用法区别
- java中filter的用法(2009-03-18 16:55:38| 分类: java 技术)
- Extjs4--Ext.data.Store的多列排序和过滤器
- extjs combo中给Store插入一条数据