[CLOSED] How to apply filterBy() on already filtered store in Grid

  1. #1

    [CLOSED] How to apply filterBy() on already filtered store in Grid

    Hi,

    I have a filtered store with some values.

    Again I need to apply another filter on that already filtered store.

    e.g.

    Store has following values
    1) User1
    2) User1
    3) User1
    4) User22
    5) User3
    6) User4
    7) User4
    8) User51
    9) User52

    Filtered store :
    1) User1
    7) User4
    9) User52

    I need to apply filter on above store.

    Condition is record not equal to 'User52'

    Output should be :
    1) User1
    7) User4

    Code used for above filtering :

     var store = App.GridPanel.getStore(); 
                var length = store.data.items.length;           
                if (length === store.totalCount) { 
                    store.filterBy(function (record) { 
                       if(record.get('UserName') != givenValue) 
                            return true; 
                        else 
                            return false; 
                    }); 
                } 
    
                else if (length > 0) { 
                    store.data.items.filter(function (record) { 
                        for (var i = 0; i < length; i++) {                      
                            if (record.get('UserName') != givenValue) 
                                return true; 
                            else 
                                return false; 
                        } 
                    }); 
                }
    Above code is not giving us expected output.

    Please suggest the way to implement this.
    Last edited by Daniil; Aug 13, 2013 at 3:45 AM. Reason: [CLOSED]
  2. #2
    Hi @PriceRightHTML5team,

    Please try this override and use the filterRestBy method instead of the filterBy one.

    filterRestBy
    Ext.data.Store.override({
        filterRestBy: function (fn, scope) {
            var me = this;
    
            me.snapshot = me.snapshot || me.data.clone();
            me.data = me.queryRestBy(fn, scope || me);
            me.fireEvent('datachanged', me);
            me.fireEvent('refresh', me);
        },
    
        queryRestBy: function (fn, scope) {
            var me = this;
    
            return me.data.filterBy(fn, scope || me);
        }
    });

Similar Threads

  1. [CLOSED] Get all changed store data when store is filtered
    By bayoglu in forum 2.x Legacy Premium Help
    Replies: 6
    Last Post: Mar 08, 2013, 4:08 PM
  2. [CLOSED] Get Store's Filtered Records
    By Juls in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Oct 04, 2011, 7:42 AM
  3. How to retrieve filtered data from grid
    By chezinho in forum 1.x Help
    Replies: 0
    Last Post: Jan 07, 2011, 11:41 AM
  4. [CLOSED] [1.0] Adding new rows to filtered Grid
    By danielg in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Dec 22, 2009, 3:57 AM
  5. [CLOSED] Store.filterBy() - PagingToolbar does not get updated
    By pschojer in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Nov 19, 2009, 4:00 AM

Tags for this Thread

Posting Permissions