Javascript ExtJS 6按lastname或middlename筛选网格存储
我是ExtJS新手。 我有一个网格存储,它有一个列FullName,我想按lastname或middlename筛选存储。 我用过这个代码Javascript ExtJS 6按lastname或middlename筛选网格存储,javascript,extjs,filter,store,extjs6,Javascript,Extjs,Filter,Store,Extjs6,我是ExtJS新手。 我有一个网格存储,它有一个列FullName,我想按lastname或middlename筛选存储。 我用过这个代码 tbar: [ 'Search', { xtype: 'textfield', listeners: { specialkey: function(field, e) { if(e.getKey() == e.ENTER) {
tbar: [
'Search', {
xtype: 'textfield',
listeners: {
specialkey: function(field, e) {
if(e.getKey() == e.ENTER) {
var texto = field.getValue();
store_Pessoas.removeFilter('filtersIdPessoasValor');
if(isNaN(texto)) {
store_Pessoas.addFilter({
id: 'filtersIdPessoasValor',
property: 'tFullName',
value: texto
});
store_Pessoas.load();
}
}
}
}
]
使用此代码,我只能按firstname及以后的名称进行筛选,但我希望按middlename或lastname进行筛选。您的网格可以有一列“FullName”,但您的商店应该为firstname、middlename和lastname提供单独的字段。否则,您只需假设全名的格式是一致的,以便能够根据middle和lastname对其进行过滤 您可以使用filterBy编写自己的自定义筛选函数-
var texto=field.getValue();
存储_Pessoas.clearFilter();
if(isNaN(texto)){
存储过滤器(功能(记录){
var fullname=record.get('fullname');
//假设您的名字具有FIRSTNAME MIDDLENAME LASTNAME结构
var name=fullname.split(“”;//将字符串拆分为3的数组
//姓名[1]-中间名/姓名[2]-姓氏
如果(名称[1].toLowerCase().indexOf(textto.toLowerCase())!=-1 | |名称[2].toLowerCase().indexOf(textto.toLowerCase())!=-1){
返回true;
}
返回false;
});
};代码>