Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJS-8791 in 4.2.3.
  1. #1
    Sencha Premium Member skirtle's Avatar
    Join Date
    Oct 2010
    Location
    UK
    Posts
    3,605
    Vote Rating
    326
    skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future

      1  

    Default [4.2.0.489] Grid reconfigure with autoDestroy fails

    [4.2.0.489] Grid reconfigure with autoDestroy fails


    Code:
    Ext.onReady(function() {
        var grid = new Ext.grid.Panel({
            height: 300,
            renderTo: Ext.getBody(),
            width: 300,
    
            columns: [{
                dataIndex: 'text',
                text: 'Text'
            }]
        });
    
        grid.reconfigure({
            autoDestroy: true,
            data: [{text: 'Text'}],
            fields: ['text']
        });
    });
    The store gets destroyed prematurely during the reconfigure and an error is thrown.

    I'd also argue that reconfigure should be setting autoDestroy to true by default if it's passed a store config, but that's a separate problem.

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,347
    Vote Rating
    846
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


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

  3. #3
    Sencha Premium Member
    Join Date
    Jan 2008
    Posts
    1
    Vote Rating
    0
    danielbraga is on a distinguished road

      0  

    Default


    This happens to me too, in version 4.2 released on March 13.

  4. #4
    Sencha Premium Member skirtle's Avatar
    Join Date
    Oct 2010
    Location
    UK
    Posts
    3,605
    Vote Rating
    326
    skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future skirtle has a brilliant future

      0  

    Default


    The problem seems to be that the loadmask goes through 2 unbind/bind cycles during a reconfigure and the second unbinding destroys the new store rather than the old store.

    For now I'm using this patch to ensure the mask only gets rebound once:

    Code:
    Ext.define('MyApp.view.AbstractView', {
        override: 'Ext.view.AbstractView',
    
        onBindStore: function(store, initial, propName) {
            if (!initial && propName === 'store') {
                this.bindStore(store, false, 'dataSource');
            }
            else {
                this.setMaskBind(store);
            }
        }
    });

  5. #5
    Sencha Premium Member
    Join Date
    Nov 2011
    Posts
    43
    Vote Rating
    2
    agunescu is on a distinguished road

      0  

    Default


    I have a problem with reconfigure when using it on a locked grid. I receive :
    PHP Code:
    TypeErrorel is null
    el
    .removeCls.apply(elarguments); 
    I don't know what the issue here, I've tried bebuggind reconfigure and reconfigureLockable methods and I've seen that the error shows on reconfigureLockable method, after:
    PHP Code:
    lockedGrid.headerCt.add(columns.locked.items); 
    Any help please with this?
    What it's with this removeCls method???
    /** * Removes a CSS class from the top level element representing this component.

    * @param {String/String[]} cls The CSS class name to remove.

    * @returns {Ext.Component} Returns the Component to allow method chaining.

    */