Apache flex 如何在Flex中格式化货币数据字段
我有一个xml文件,为Flex2中的datagrid提供数据,其中包括一个未格式化的价格字段(即:它只是一个数字)。 有谁能告诉我如何处理数据域和格式化它-添加一个货币符号,放入千个分隔符等等。 谢谢Apache flex 如何在Flex中格式化货币数据字段,apache-flex,datagrid,currency,formatter,Apache Flex,Datagrid,Currency,Formatter,我有一个xml文件,为Flex2中的datagrid提供数据,其中包括一个未格式化的价格字段(即:它只是一个数字)。 有谁能告诉我如何处理数据域和格式化它-添加一个货币符号,放入千个分隔符等等。 谢谢 那么CurrencyFormatter类呢 有关Flex2的文档,请参阅。它很容易使用 您可以在DataGrid列的labelFunction中使用其中一个函数来格式化数字。如上所述,一种简单的方法是向指定列添加labelFunction并格式化其中的数据 我经常发现处理对象比处理纯XML容易得多
那么CurrencyFormatter类呢 有关Flex2的文档,请参阅。它很容易使用
您可以在DataGrid列的labelFunction中使用其中一个函数来格式化数字。如上所述,一种简单的方法是向指定列添加labelFunction并格式化其中的数据 我经常发现处理对象比处理纯XML容易得多,所以通常,如果我从函数接收XML,我会为该XML创建一个对象和解析器,如果您愿意,也可以在解析器中格式化数据 另一种处理方法是在itemRenderer中。例如:
<mx:DataGridColumn id="dgc" headerText="Money" editable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="right">
<mx:CurrencyFormatter id="cFormat" precision="2" currencySymbol="$" useThousandsSeparator="true"/>
<mx:Label id="lbl" text="{cFormat.format(data)}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
非常感谢您的回答……他们帮了大忙 最后,我选择了一个包含以下三个要素的解决方案:
<mx:DataGridColumn headerText="Price" textAlign="right" labelFunction="formatCcy" width="60"/>
public function formatCcy(item:Object, column:DataGridColumn):String
{
return euroPrice.format(item.price);
}
<mx:CurrencyFormatter id="euroPrice" precision="0"
rounding="none"
decimalSeparatorTo="."
thousandsSeparatorTo=","
useThousandsSeparator="true"
useNegativeSign="true"
currencySymbol="€"
alignSymbol="left"/>
公共函数formatCcy(项:对象,列:DataGridColumn):字符串
{
返回euroPrice.格式(项目价格);
}
我不知道这是否是正确的解决方案,但(目前)似乎有效,
再次感谢,
这是不必要的复杂。labelFunction的要点是避免列中每个单元格的itemRenderer的开销。在上面的示例中,每个单元格也有一个CurrencyFormatter。下面的提问者解决方案是一个更好的替代方案。是的,我知道我只是给出了一个替代方案,因此我声明的第一行为什么要使用label函数。这正是正确的解决方案,如果您所做的只是格式化单元格的内容,则不需要itemRenderer。是的,Simon。这是正确的解决方案。我完全同意你的看法