Extjs更新所有网格行不起作用

时间:2014-04-09 14:16:56

标签: extjs

我正在使用Extjs 3.2grid。我有5个记录。我也在停止用户一次选择多行。在网格中我有按钮说批准。我想要的是一旦用户选择一个记录并点击批准选定的行coloumn " showRecord" 将变为1,并且剩余的行将变为 showrecord :0

这是我的代码

    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);

        }
    }
});

这是我的逻辑

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();


}
}

我的问题是它没有保存在数据库中

1 个答案:

答案 0 :(得分:0)

不要使用record.commit()它会说明所有更改都已更改的记录。它由store.sync()自动调用。删除record.commit(),它应该有效。你也可以使用'record.save()'来同步一条记录。