我相信你已经知道怎么把其他数据合计到小计里面,但是批量保存后发现小计的数据在数据库里面压根就没有,是不是很扯蛋呢,废话不多说,上代码:
{
header:'小计', dataIndex: 'c',
renderer: function(value, metaData, record, rowIdx, colIdx, store, view) {
var total = 0;
total+=HaveValue(record.get('a'));
total+=HaveValue(record.get('b'));
//关键代码在这里
if(record.get('c')!=total){
record.set('c',total);
}
//这里添加人民币符号,是不是很开心呢
return Ext.util.Format.currency(total,'¥ ',2);
},tdCls:'oa-bg-yellow'
}
var HaveValue = function(v){
return v!=''?Number(v):0;
}
好了,这样设置以后,就可以获取到相应的值了。
也许你会问,怎样获取gridPanel更新的字段?像这样做就可以啦
var records = Store.getModifiedRecords();
Ext.each(records, function(record) {
if (record.raw.id != undefined) {
//Ext.Date.format(addtime, 'U');//日期转换成时间戳
}
});
经过严格的测试,以上方法只适合字段在末尾的情况,(小计比较多的时候,出现界面错位)经过本人改进,建议结合使用以下方法(如有疑问欢迎留言)
listeners:{
'edit':function(editor, e) {
var total = 0;
switch (e.field) {
case 'a'://编辑字段
case 'b'://受影响的字段
total = HaveValue(e.record.get('a'));
total += HaveValue(e.record.get('b'));
e.record.set('c', total);//小计字段
break;
}
}
}
2016年5月27日 重庆-传说