If you modify records of an editable grid with paging and if you then page-out, your changes are lost. This article shows easy implementation of keeping modified records while paging.

Share This Post

Code in this post can be obsolete, however, principles and theory may still apply.
If you modify records of an editable grid with paging and if you then page-out, your changes are lost. Well, they are not lost in fact unless you have set pruneModifiedRecords:true on the strore. The modifications are still available so we just need to apply them. Here is the code fragment that does it:
var grid = new Ext.grid.EditorGridPanel({
    store:new Ext.data.Store({
         listeners:{
            load:{scope:this, fn:function(store) {

                // loop through modified records
                var modified = store.getModifiedRecords();
                for(var i = 0; i < modified.length; i++) {

                    // see if we have a record with same id 
                    // and apply changes if yes
                    var r = store.getById(modified[i].id);
                    if(r) {
                        var changes = modified[i].getChanges();
                        for(p in changes) {
                            if(changes.hasOwnProperty(p)) {
                                r.set(p, changes[p]);
                            }
                        } // eo changes loop
                    }
                } // eo modified loop
            }} // eo load listener
        } // eo listeners

        // rest of store configuration

    })

    // rest of grid configuration

}) // eo grid
pruneModifiedRecords must be false (the default) for this to work.
Follow me:
Latest posts by saki (see all)

Want to collaborate on an upcoming project?