ExtJS 6按姓氏或中间名过滤网格的存储
ExtJS 6 Filter store of grid by lastname or middlename
我是ExtJS的新手。我有一个网格的存储,它有一列FullName,我想按姓氏或中间名过滤存储。我用过这个代码
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();
}
}
}
}
]
使用此代码,我只能按名字及以上进行筛选,但我想按中间名或姓氏进行筛选。
您的网格可以有一个列"FullName",但您的商店应该有单独的firstname、middname和lastname字段。否则,您只需要假设全名的格式是一致的,就可以在middle和lastname的基础上对其进行过滤。
您可以使用filterBy编写自己的自定义筛选函数-
var texto = field.getValue();
store_Pessoas.clearFilter();
if (isNaN(texto)) {
store_Pessaoas.filterBy(function(record) {
var fullname = record.get('FullName');
//Assuming that your name has a structure of FIRSTNAME MIDDLENAME LASTNAME
var names = fullname.split(" "); //splits the string into an array of 3
// names[1] - middlename / names[2] - lastname
if (names[1].toLowerCase().indexOf(textto.toLowerCase()) !== -1 || names[2].toLowerCase().indexOf(textto.toLowerCase()) !== -1) {
return true;
}
return false;
});
};
签出filterBy的文档http://docs.sencha.com/extjs/6.0/6.0.1-classic/#/api/Ext.data.AbstractStore-method-filterBy
相关文章:
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 剑道网格不允许我在使用自定义列模板时过滤列
- 通过标签选择过滤平行网格
- 用Javascript填充剑道网格列菜单过滤选项
- Kendo UI网格小工具客户端对数字列进行过滤
- ExtJS 6按姓氏或中间名过滤网格的存储
- 如何在 onActiveCellChanged 事件中从过滤的光滑网格中获取正确的行 ID
- 剑道网格:如何从一列中远程过滤 2 个以上的值
- Dojo 网格:将过滤条件发送到服务器,具有有效日期
- 使用输入框过滤剑道网格
- 角度 UI 网格外部过滤
- 剑道UI网格 - 使用ajax帖子过滤
- 剑道网格 :对数组对象进行过滤
- item(i)为null或不是带过滤选项的锁定网格中的对象(extjs3.4)
- 具有多选列的剑道网格自定义过滤功能
- 如何在ExtJS 5中使用分页过滤网格数据
- 如何在Kendo网格的客户端过滤网格时获得事件处理程序
- Jquery脚本后CSS未更新-同位素不对称可过滤网格
- 无法对过滤网格面板进行排序(w/fiddle)
- 如何在Ext.js 4.2.0中过滤网格上的渲染列?