如何在Flex中格式化货币数据字段

时间:2008-10-06 11:58:10

标签: flex datagrid currency formatter

我有一个xml文件,为Flex 2中的数据网格提供数据,其中包含未格式化的价格字段(即:它只是一个数字)。 任何人都可以告诉我如何采取该数据字段并格式化它 - 添加货币符号,放入千位分隔符等。 谢谢。 S上。

3 个答案:

答案 0 :(得分:4)

非常感谢您的回答......他们帮了大忙。

最后,我找到了一个涉及以下三个要素的解决方案:

<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"/>

我不知道这是否是正确的解决方案,但似乎有效(目前), 再次感谢, 小号...

答案 1 :(得分:1)

如上所述,一种简单的方法是将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>

答案 2 :(得分:0)

CurrencyFormatter类

怎么样?

有关Flex 2的文档,请参阅here。它非常易于使用。

您可以在DataGrid列的labelFunction中使用其中一个来格式化数字。