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


    Default Grouping feature breaks bufferedrendere scrollto function (and possible fix)

    Grouping feature breaks bufferedrendere scrollto function (and possible fix)


    Ext version tested:
    • Ext

    Browser versions tested against:
    • Chrome 25
    • IE9

    DOCTYPE tested against:
    • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "">

    • Modified the buffer-grid.js example to include the grid grouping feature. This breaks the ability to use the bufferedRenderer.scrollTo function

    Steps to reproduce the problem:
    • Modify the buffer grid example as follows.
    • Type 400 in the 'jump to row' textfield and click go.
           enableLocking: false,
           plugins: [
    				ptype: 'bufferedrenderer',
    				variablerowheight: true
    		features: [{
                ftype: 'groupingsummary',
                groupHeaderTpl: '{name}'

    The result that was expected:
    • Should scroll to row 400.

    The result that occurs instead:
    • Does nothing.

    Test Case:
    Full working js (when pasted into examples/buffer-grid.js)
       Ext.Loader.setConfig({enabled: true});
    Ext.Loader.setPath('Ext.ux', '../ux/');
    Ext.define('Employee', {
        extend: '',
        fields: [
           {name: 'rating', type: 'int'},
           {name: 'salary', type: 'float'},
           {name: 'name'}
         * Returns an array of fake data
         * @param {Number} count The number of fake rows to create data for
         * @return {Array} The fake record data, suitable for usage with an ArrayReader
        function createFakeData(count) {
            var firstNames   = ['Ed', 'Tommy', 'Aaron', 'Abe', 'Jamie', 'Adam', 'Dave', 'David', 'Jay', 'Nicolas', 'Nige'],
                lastNames    = ['Spencer', 'Maintz', 'Conran', 'Elias', 'Avins', 'Mishcon', 'Kaneda', 'Davis', 'Robinson', 'Ferrero', 'White'],
                ratings      = [1, 2, 3, 4, 5],
                salaries     = [100, 400, 900, 1500, 1000000];
            var data = [];
            for (var i = 0; i < (count || 25); i++) {
                var ratingId    = Math.floor(Math.random() * ratings.length),
                    salaryId    = Math.floor(Math.random() * salaries.length),
                    firstNameId = Math.floor(Math.random() * firstNames.length),
                    lastNameId  = Math.floor(Math.random() * lastNames.length),
                    rating      = ratings[ratingId],
                    salary      = salaries[salaryId],
                    name        = Ext.String.format("{0} {1}", firstNames[firstNameId], lastNames[lastNameId]);
                    id: 'rec-' + i,
                    rating: rating,
                    salary: salary,
                    name: name
            return data;
        // Create the Data Store.
        // Because it is buffered, the automatic load will be directed
        // through the prefetch mechanism, and be read through the page cache
        var store = Ext.create('', {
            id: 'store',
            data: createFakeData(5000),
            model: 'Employee',
            proxy: {
                type: 'memory'
        var jumpToRow = function(){
            var fld = grid.down('#gotoLine');
            if (fld.isValid()) {
                grid.view.bufferedRenderer.scrollTo(fld.getValue() - 1, true);
        var grid = Ext.create('Ext.grid.Panel', {
            width: 700,
            height: 500,
            title: 'Bufffered Grid of 5,000 random records',
            store: store,
            loadMask: true,
    		enableLocking: false,
            plugins: [
    				ptype: 'bufferedrenderer',
    				variablerowheight: true
    		features: [{
                ftype: 'groupingsummary',
                groupHeaderTpl: '{name}'
            selModel: {
                pruneRemoved: false
            viewConfig: {
                trackOver: false
            // grid columns
                xtype: 'rownumberer',
                width: 40,
                sortable: false
                text: 'Name',
                flex:1 ,
                sortable: true,
                dataIndex: 'name'
                text: 'Rating',
                width: 125,
                sortable: true,
                dataIndex: 'rating'
                text: 'Salary',
                width: 125,
                sortable: true,
                dataIndex: 'salary',
                align: 'right',
                renderer: Ext.util.Format.usMoney
            bbar: [{
                labelWidth: 70,
                fieldLabel: 'Jump to row',
                xtype: 'numberfield',
                minValue: 1,
                maxValue: store.getTotalCount(),
                allowDecimals: false,
                itemId: 'gotoLine',
                enableKeyEvents: true,
                listeners: {
                    specialkey: function(field, e){
                        if (e.getKey() === e.ENTER) {
            }, {
                text: 'Go',
                handler: jumpToRow
            renderTo: Ext.getBody()


    Debugging already done:
    • The GroupStore does not support callback which is used by bufferredrenderer plugin

    Possible fix:
    • This is one possible fix (code copied from another store, forget where)
        getRange: function(start, end, options) {
            var result =, end);
            // Someone *may* use the callback interface to process their results even if the store is not buffered and always synchronous
            if (options && options.callback)
       || this, result, start, end, options)
            return result;        

    Additional CSS used:
    • only default ext-all.css

    Operating System:
    • Windows 7

  2. #2
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Notts/Redwood City
    Vote Rating
    Animal has a spectacular aura about Animal has a spectacular aura about



    Thanks for the report! I have opened a bug in our bug tracker.

Thread Participants: 1

Tags for this Thread

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi