我导入XML数据以填充AdvancedDataGrid(使用Flex 4.5) 此ADG正确填充数据,列显示正确的信息等。
我想用
总结一下这个ADG<mx:SummaryRow summaryPlacement="group">
<mx:SummaryField2 dataField="Cost" label="amount" summaryOperation="SUM">
</mx:SummaryRow>
但是有一个问题!实际上,'Cost'数据被导入为'Strings',这就是为什么我不能做SUM ...我只是得到了一个很好的0! 我想将这些数据转换为Numbers,以便可以处理添加。必须在填写ADG之前完成此转换。
我已经尝试过实现自定义的摘要操作,但不幸的是......
public function calculateSummary(data:Object, field:SummaryField2, rowData:Object):void
{
var dataField:String = field.dataField;
var value:Number = Number(rowData[dataField]);
Alert.show(rowData[dataField]);
if (!data.hasOwnProperty(dataField))
data[dataField] = value ;
else
data[dataField] += value;
}
警报始终显示无效消息,数据不会传输到此功能我认为
还有另一件事:用户可以动态地在XML中插入新数据,并且插入必须更新SUM结果。
有人能帮帮我吗?我会继续搜索,如果我发现了什么,我会发布它:D
谢谢!
答案 0 :(得分:0)
您可以将astring转换为执行以下操作的数字:
var myNewNumber : Number = Number(stringValue);
你确切想要在你的代码中做到这一点,我不确定。您绝对可以将XML转换为对象数组,然后将该数组用作dataProvider。我怀疑你也可以把它作为计算总数的过程的一部分。
答案 1 :(得分:0)
如果您正在使用XML,请不要忘记使用“@”来识别属性(@Cost
)。
<mx:SummaryRow summaryPlacement="group">
<mx:SummaryField2 dataField="@Cost" label="amount" summaryOperation="SUM">
</mx:SummaryRow>
您不需要将字符串转换为数字,框架已在内部执行。