Search code examples
extjsfilterstoreextjs4.1

how to filter a extjs store with an exact match


I am using a filter for a store. The problem is that I want to return an exact match.

For example:

If I am filtering for aa-1 in a grid it will show aa-1 and aa-1*** but if I want only see everything with aa-1.

I use this to filter:

listeners: {
    itemclick: function() {
        var data = grid.getSelectionModel().selected.items[0].data;
        store.clearFilter();
        store.filter('productsCat', data.productsCat);
    }
}

What do I have to do to do an exact match?


Solution

  • You could use a regular expression in the filter to perhaps ensure that the comparison value was the end of the phrase.

    Either that, or use the filterBy() method to define a comparison function, e.g.:

    store.filterBy(this, function(rec, id) {
        if(rec.get('thefieldtocompare') === "what you want to compare against") {
            return true;
        }
        else {
            return false;
        }
    });