2016-07-27 6 views
28

У меня есть строковый фильтр для 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"), 
}); 

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

+2

Вы должны показать нам свой код –

+1

Вы можете показать нам код и то, что вы пытались сделать? –

+0

@YosvelQuintero IS теперь отлично подходит для вас? – David

ответ

11

Как вам пример 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, чтобы изменить текст, который вы хотите. Как и Да и Нет. Это более удобно для пользователя, чем вводить его. Поскольку у вас есть только два значения.

+0

Я работаю над этим. Я предполагаю, что ваше редактирование закончено. Я сообщу вам, как только закончу. – David

+0

Добавил мой последний комментарий. Извините за так много прав. Я просто взволнован, чтобы поиграть с этим ....: D. Никогда не видел их раньше .... –

+0

Я использую строковый фильтр, потому что остальные остальные столбцы являются строками. только эта колонка является vollean. Я меняю тип фильтра, так как это логическое значение. Также я использую ext 3.4, поэтому не могу создать псевдоним – David