Подтвердить что ты не робот

Как изменить введенное значение в строчном фильтре

У меня есть фильтр строк для 3 столбцов в моей сетке. Это работает нормально. В третьем столбце, dataindex которого abc, я хочу изменить введенное значение.

Например, если я нажму 0, он отфильтрует все данные, имеющие 0. Я хочу нажать "Нет" вместо 0 для фильтрации. Аналогично, я хочу использовать "Да" вместо 1 для фильтрации данных с помощью 1.

Мой код для создания фильтра.

this.filters = new Ext.ux.grid.GridFilters({
    filters: this.filter,
    local: true,
    autoReload: false,
});
this.features = [this.filters];
this.plugins = [this.filters];

Код для вставки фильтра.

gridEl.filter.push({
    type: header.getAttribute("FILTER"),
    dataIndex: header.getAttribute("DATAINDEX"),
    encode: false,
    metaID: header.getAttribute("M"),
});

Спасибо за помощь.

4b9b3361

Ответ 1

Как вам пример http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid-filtering/grid-filter-local.html Создайте свой собственный BooleanFilter и добавьте условие. См. Мой фрагмент ниже.

Ext.define('MyFilter.CustomBooleanFilter', {
   extend: 'Ext.ux.grid.filter.StringFilter',
   alias: 'gridfilter.customboolean',

   validateRecord : function (record) {
       var rValue = record.get(this.dataIndex),
           fValue = this.getValue();
       return rValue == fValue || rValue == (fValue == "1" || "true".indexOf(fValue.toLowerCase()) == 0 || "yes".indexOf(fValue.toLowerCase()) == 0);
    }
});

См. рабочую демонстрацию здесь. https://fiddle.sencha.com/#fiddle/1f5l

Сообщите мне, если вы этого не ищете. Я сделал то, что я понимаю EDIT: Но я чувствую, что это то, что вы хотите, а затем используйте Boolean Filter, чтобы изменить текст, который вы хотите. Как и Да и Нет. Это более удобно для пользователя, чем вводить его. Поскольку у вас есть только два значения.