Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJS-9064 in a recent build.
  1. #11
    Sencha User
    Join Date
    Nov 2010
    Location
    Ukraine
    Posts
    11
    Vote Rating
    0
    NexusOne is on a distinguished road

      0  

    Default Row unselectable, when horisontal scroll occured

    Row unselectable, when horisontal scroll occured


    Hey, guys!
    When I have to many columns in my grid and it has horisontal scroll, and grid used bufferedrenderer plugin, only first page of store data selectable. When I scroll to middle of data, I can't select any row

  2. #12
    Sencha User Daniil's Avatar
    Join Date
    Jun 2010
    Location
    Saint-Petersburg, Russia
    Posts
    974
    Vote Rating
    108
    Daniil is a name known to all Daniil is a name known to all Daniil is a name known to all Daniil is a name known to all Daniil is a name known to all Daniil is a name known to all

      0  

    Default


    Quote Originally Posted by NexusOne View Post
    Hey, guys!
    When I have to many columns in my grid and it has horisontal scroll, and grid used bufferedrenderer plugin, only first page of store data selectable. When I scroll to middle of data, I can't select any row
    Hi @NexusOne,

    It is worth to report it in a new thread.
    Ext.NET - ASP.NET for Ext JS
    MVC and WebForms
    Examples | Twitter

  3. #13
    Sencha User
    Join Date
    Jul 2013
    Posts
    1
    Vote Rating
    1
    di4bl0s is on a distinguished road

      1  

    Default Fixed through override

    Fixed through override


    for those interested and experiencing the same issue I have provided an override that hopefully resolves all issues (it does with me)
    Code:
    Ext.override(Ext.selection.Model, {
        /**
         * this override fixes multiple bugs when store is a buffered type
         * and fixed a bug that causes the initial hasId to not work because
         * the store.gerById() method expects an ID and not the record
         * also forcing the double verification when the record is not found because
         * it places both checks in a single if statement
         * @param record
         * @returns {boolean}
         */
        storeHasSelected: function(record) {
            var store = this.store,
                records,
                len, id, i, m;
    
    
            if (record.hasId()) {
                return store.getById(record.getId());
            } else {
                if (store.buffered) {//on buffered stores the map holds the data items
                    records = [];
                    for (m in store.data.map) {
                        records = records.concat(store.data.map[m].value);
                    }
                } else {
                    records = store.data.items;
                }
                len = records.length;
                id = record.internalId;
    
    
                for (i = 0; i < len; ++i) {
                    if (id === records[i].internalId) {
                        return true;
                    }
                }
            }
            return false;
        }
    });

  4. #14
    Sencha Premium Member
    Join Date
    Feb 2012
    Location
    France
    Posts
    20
    Vote Rating
    0
    afro is on a distinguished road

      0  

    Default


    Thanks for this fix, works fine for me too

  5. #15
    Sencha User
    Join Date
    Oct 2013
    Posts
    1
    Vote Rating
    0
    chawkins is on a distinguished road

      0  

    Default Still broken in ext-4.2.2-20130930-beta

    Still broken in ext-4.2.2-20130930-beta


    FYI: still broken in ext-4.2.2-20130930-beta.zip, though the fix from post #13 works for me, when overriden in 4.2.1

    The change for

    if (record.hasId() && store.getById(record))
    TO
    if (record.hasId() && store.getById(record.getId()))

    is there but the buffered store fix where store.data.items is undefined is not.

    FYI the compound statement 'record.hasId() && store.getById(record.getId())' does not have to be split; the second half will not be evaluated if the first fails because it is a logical AND rather than an OR. If the java runtime is evaluating both when the first is false then there is a problem with the java runtime in your browser.

  6. #16
    Sencha User
    Join Date
    Feb 2013
    Posts
    14
    Vote Rating
    0
    c.bakogiannis is on a distinguished road

      0  

    Default


    Can somebody from Sencha please look into this??

  7. #17
    Sencha Premium Member
    Join Date
    Jun 2009
    Location
    Italy
    Posts
    12
    Vote Rating
    0
    mrjari is on a distinguished road

      0  

    Default


    End of January 2014 and not solved yet!

  8. #18
    Sencha Premium Member
    Join Date
    Oct 2013
    Location
    Austin, TX, USA
    Posts
    1
    Vote Rating
    1
    c_herveg@qti.qualcomm.com is on a distinguished road

      1  

    Default


    I managed to work around this by overriding the same function

    Code:
    storeHasSelected: function(record) 
    {
        var pageRecords,
            store = this.store;
    
        if (! record.hasId())
            return false;
    
        for (var j in store.data.map)
        {
            if (isNaN(j) || (! store.data.map[j].hasOwnProperty('value')))
                continue;
            pageRecords = store.data.map[j].value;
            for (var i=0; i<pageRecords.length; i++)
                if (pageRecords[i].getId() == record.getId())
                    return true;
        }
        return false;
    }
    Basically this function does what store.each() is supposed to do and returns true when/if the record's matched.
    Hope it helps.

  9. #19
    Sencha User chramer's Avatar
    Join Date
    Feb 2011
    Location
    Chisinau, Moldova
    Posts
    194
    Vote Rating
    8
    chramer will become famous soon enough

      0  

    Default


    Take a look at pruneRemoved property:
    http://docs.sencha.com/extjs/4.2.2/#...g-pruneRemoved