问题描述:
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 Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu](http://img6.ph.126.net/HDynFYA9VvZpoqISrex9tQ==/6597943878400134166.jpg)
没有balanceStore.commitChanges(); 时,在上一次录入中修改结余 454 为 222454:
![Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu](http://img3.ph.126.net/DCkVVqAxvpdaWfk1z-qHRA==/2604769434498217023.jpg)
![Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu Ext中 store.getModifiedRecords().length 问题 - 浮水弹心 - zhao.xuepu](http://img0.ph.126.net/aypTU1BhJPXdSfzpYQLl8g==/6597821832609451740.jpg)