Ext中 store.getModifiedRecords().length 问题

来源:互联网 发布:淘宝卖家刷单流程 编辑:程序博客网 时间:2024/06/05 05:05

问题描述:

grid中,批量修改多条数据时,发现修改后显示的修改记录数是错误的,经过查找发现如果修改之前做过一次修改,第二次修改时,getModifiedRecords()方法会获取到第一次修改的记录, 所得到的记录数是两次修改的记录数的累加。

代码:

{
  text:"保存",
  id:"save",
  icon : ImageURL+"save.gif",
  handler : function(){
   myMask.show();
   var saveDataString='';
   if(balanceStore.getModifiedRecords().length>0){
    for(var i = 0 ;i<balanceStore.getModifiedRecords().length;i++){
     var savedate;
     if(Ext.isDate(balanceStore.getModifiedRecords()[i].data.ndate)){
      savedate = new Date(balanceStore.getModifiedRecords()[i].data.ndate).format('Y-m-d');
     }else{
      savedate = balanceStore.getModifiedRecords()[i].data.ndate;
     }
     saveDataString += balanceStore.getModifiedRecords()[i].data.pid+'!,'+ balanceStore.getModifiedRecords()

                                    [i].data.unit+'!,'+savedate+'!,'+balanceStore.getModifiedRecords()[i].data.balance+'#@';
    }
   }
   alert(saveDataString);  //发现修改后还是能把上一次的记录记住,将会导致本身修改一条数据,结果成了新增加的一条、double
   if(saveDataString!=''){
          saveBalance(saveDataString);   
          balanceStore.commitChanges();    //调用回调函数 , 使用commitChanges()方法,就可以解决此问题
   }
  }
 }

没有balanceStore.commitChanges(); 时,第一次录入:

Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu

没有balanceStore.commitChanges(); 时,在上一次录入中修改结余 454 为 222454:

Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu
界面:
Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu
总结:
调用store.commitChanges()方法,就可以解决此问题,可以把上一次的记录清空掉。
 

 

 

 

0 0
原创粉丝点击