Фильтр Extjs4.2 для одного столбца и пользователь может использовать разделитель для сопоставления разных строк
Мне нужно отфильтровать один столбец, и пользователь может использовать разделитель для сопоставления разных строк, например: (Поскольку я не мог публиковать изображения, я должен описать menuitme для моего столбца)
Sort Ascending
Sort Descending
Filters => Jim|Tom
Пользователь может ввести "Джим | Том" в текстовое поле для фильтрации на сетке.
Но в целом, кажется, не поддерживается Extjs 4.2. Я обнаружил, что применение нескольких значений для одного свойства не работает, как описано выше.
Вот мое определение столбца для этого столбца "Владелец":
{
text:'Owner',
width:50,
dataIndex:'owner',
sortable:true,
filter:{
type:'string',
}
},
Как я мог решить эту проблему?
Благодарю.
Alex
1 ответ
Решение
Вам необходимо переопределить строковый фильтр, что-то вроде (не проверено):
Ext.define('MyOverride', {
override: 'Ext.ux.grid.filter.StringFilter',
validateRecord : function (record) {
var val = record.get(this.dataIndex);
if(typeof val != 'string') {
return (this.getValue().length === 0);
}
val = val.toLowerCase();
var parts = this.getValue().toLowerCase().split('|'),
found = false;
Ext.Array.forEach(parts, function(part) {
if (val.indexOf(part) > -1) {
found = true;
}
});
return found;
}
});