Extjs gridPanel 小计保存不上

这里写图片描述

我相信你已经知道怎么把其他数据合计到小计里面,但是批量保存后发现小计的数据在数据库里面压根就没有,是不是很扯蛋呢,废话不多说,上代码:

{ 
    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日 重庆-传说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值