2016-07-27 31 views
28

Mam filtr ciągów dla 3 kolumn w mojej kratce. To działa dobrze. W trzeciej kolumnie, której dataindex to abc, chcę zmodyfikować wprowadzoną wartość.Jak zmodyfikować wpisaną wartość w filtrze ciągów znaków

Na przykład, jeśli naciśniesz 0, to filtrowane są wszystkie dane, które mają 0. Chcę nacisnąć "Nie" zamiast 0, aby filtrować. Podobnie chcę użyć "Tak" zamiast 1, aby przefiltrować dane za pomocą 1.

Mój kod tworzenia filtra.

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

Kod do wstawiania filtra.

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

Dzięki za pomoc.

+2

Powinieneś pokazać nam swój kod –

+1

Możesz pokazać nam kod i co próbowałeś zrobić? –

+0

@YosvelQuintero JEST teraz w porządku dla ciebie? – David

Odpowiedz

11

Jak na ciebie przykład http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid-filtering/grid-filter-local.html Stwórz swój własny BooleanFilter i dodaj warunek. Zobacz mój fragment poniżej.

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); 
    } 
}); 

Zobacz demo pracy tutaj. https://fiddle.sencha.com/#fiddle/1f5l

Daj mi znać, jeśli nie szukasz tego. Zrobiłem to, co moje zrozumienie. EDYCJA: Ale czuję, jeśli to jest to, czego chcesz, a następnie użyj Boolean Filter, aby zmienić tekst, który chcesz. Tak jak Tak i Nie. Jest to wygodniejsze dla użytkownika niż wejście. Ponieważ masz tylko dwie wartości.

+0

Pracuję nad tym. Zakładam, że twoja edycja się skończyła. Powiadomię cię, gdy skończę. – David

+0

Dodano mój ostatni komentarz. Przepraszamy za tak wiele zmian. Jestem podekscytowany, że mogę grać z tym ...: D. Nigdy wcześniej ich nie widziałem .... –

+0

Używam filtra ciągów znaków, ponieważ pozostałe kolumny to ciąg znaków. tylko ta kolumna jest wolna. Zmieniam typ filtra, ponieważ jest to wartość logiczna. Używam również ext 3.4, więc nie mogę utworzyć aliasu – David