使用 sum 函数时如何处理 Store 中的空值
Posted
技术标签:
【中文标题】使用 sum 函数时如何处理 Store 中的空值【英文标题】:How to deal with null values in a Store when using the sum function 【发布时间】:2013-05-17 12:10:50 【问题描述】:我需要对存储的字段值的值和总和进行分组。对值求和时,我得到的是 NaN。我从 json 响应中得到空值。谁能告诉我如何在 extjs 中用 0 替换 null ?在对字段值求和时,还有其他方法可以避免 Nan 吗?
clientDistributionStore.group(groupField);
curJANObj= clientDistributionStore.sum('curJAN',true);
我得到一些 'curJAN' 值的空值,所以我得到 Nan 错误
【问题讨论】:
【参考方案1】:我通过 record.set 功能将值设置为 0 为 null
【讨论】:
【参考方案2】:另一种选择是向您的模型添加一个新的“已转换”(我更愿意称其为“计算”)字段:
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);
【讨论】:
【参考方案3】:我有类似的问题。我是这样解决的。
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。您可以根据自己的需要对其进行修改,但不能返回 null 值。
它适用于 ExtJS 4.2.1
【讨论】:
以上是关于使用 sum 函数时如何处理 Store 中的空值的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 JsonConvert.DeserializeObject 中的空值/空值