您的位置:首页 > 其它

Ext中 store.getModifiedRecords().length 问题

2015-08-12 15:08 218 查看
问题描述:
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(); 时,第一次录入:


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


界面:

总结: 调用store.commitChanges()方法,就可以解决此问题,可以把上一次的记录清空掉。
   
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: