Ext中 store.getModifiedRecords().length 问题

问题描述:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值