使用sum函数时如何处理Store中的空值

时间:2013-05-17 12:10:50

标签: extjs extjs4.1 extjs4.2 extjs-stores

我要求我需要对存储的字段值的值和总和进行分组。总结价值我得到NaN。我从json响应中获取null值。任何人都可以告诉我如何在extjs中将0替换为null?在总结fieldvalue的同时还有其他方法可以避免使用Nan吗?

clientDistributionStore.group(groupField);
curJANObj= clientDistributionStore.sum('curJAN',true);

我对某些'curJAN'值感到空,所以我得到了Nan错误

3 个答案:

答案 0 :(得分:0)

我通过record.set功能获得了为null设置值0

答案 1 :(得分:0)

另一种选择是添加新的"转换" (我更喜欢将它称为"计算")字段到您的模型:

fields: [
  { name: 'curJan', type: 'int' },
  {  
     name: 'curJanNotNull', type: 'int',
     convert: function(val, row) {
       return row.curJan !== null ? row.curJan : 0;
     }  
  }
]

...

var janSum = clientDistributionStore.sum('curJanNotNull', true);

答案 2 :(得分:0)

我有类似的问题。我这样解决了。

clientDistributionStore.group(Ext.create('Ext.util.Grouper', {
    property: groupField,
    getGroupString: function (instance) {
        return instance.get(this.property) || 0;
    }
}));

curJANObj= clientDistributionStore.sum('curJAN',true); // return ex. {0: 100, 'John Smith': 1000}

getGroupString函数可以通过其他方式实现,因为现在它将空字符串视为0.您可以根据自己的需要对其进行修改,但不能返回空值。

适用于ExtJS 4.2.1