1
votes

I am using Extjs 3.2grid.I have 5 Records.I am also stoping user to select multiple rows at a time.In grid i have button say approve.What i want is once user selects one record and clicks on approve the selected row coloumn "showRecord" will become 1 and remaing rows will become with showrecord:0

Here is my code

    var proxy_surv = new Ext.data.HttpProxy({
    type: 'ajax',
    api : {
        read : 'test/view.action?test='+testid_para+'&flag='+0,
        create : 'test/create.action',
        update : 'test/update.action',
        destroy : 'test/delete.action'
    }
});

var store_surv = new Ext.data.Store({
    id : 'store_surv',
    proxy : proxy_surv,
    reader : reader,
    autoSave : false
// <-- false would delay executing create, update, destroy
// requests until specifically told to do so with some [save]
// buton.
});


store_surv.on({
    beforeload: {
        fn: function (store, options) {
            // Altering the proxy API should be done using the public
            // method setApi.
            store_surv.proxy.setApi('read', 'test/view.action?test='+testid_para+'&flag='+0);

        }
    }
});

And here is my logic

tbar: [{
iconCls: 'icon-user-add',
text: 'Approve',
handler: function(){


// Server hasn't returned yet for these two lines.
    var survgrid=Ext.getCmp('grid_surv');
    getstore =survgrid.getStore();
    count =getstore.getCount();
    var selected = survgrid.getSelectionModel().getSelected();


    getstore.each(function(record){


             if(parseInt(record.get('id'))==parseInt(selected.get('id')))
             {   

                 record.set('showRecord','1');

              }
              else 
              {

                      record.set('showRecord','0');
              }

            record.commit();

    });

 store_surv.save();


}
}

My problem is its not saving in database

1

1 Answers

0
votes

don't use record.commit() it will say the record that all changes have been changed. it gets automatically called by store.sync(). remove record.commit() and it should work. you could also use 'record.save()' which will sync a single record.