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()方法,就可以解决此问题,可以把上一次的记录清空掉。
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()方法,就可以解决此问题,可以把上一次的记录清空掉。
相关文章推荐
- 积累的oracle操作
- Ext中 store.getModifiedRecords().length 问题
- svn 分支与合并
- 格式化double类型的数据,保留两位,四舍五入
- extjs时间控件,仅在选择年月时的一处小bug
- 获得当前年、月的最后一天
- oracle 时间查询
- Spring3.0注解标签
- 日期格式的校验
- Ext gridPanel ColumnModel中钱的格式设置
- svn服务器注册用户和修改本地svn用户
- 抽象类和接口的区别
- 实体关联种类
- 程序员保值的4个秘密
- 目录处理命令-------- ls
- HDU5373(2015多校第7场1005)
- 【c++编程思想学习笔记】解决浅拷贝的两种方法:(深拷贝)(引用计数+写拷贝)
- 求两个数组的公共子数组的最大长度
- gulp的使用指南
- 日常问题记录--POST时,struts2的 request.getParameter找不到参数