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

Apache flex 如何在Flex中格式化货币数据字段,apache-flex,datagrid,currency,formatter,Apache Flex,Datagrid,Currency,Formatter,我有一个xml文件,为Flex2中的datagrid提供数据,其中包括一个未格式化的价格字段(即:它只是一个数字)。 有谁能告诉我如何处理数据域和格式化它-添加一个货币符号,放入千个分隔符等等。 谢谢 那么CurrencyFormatter类呢 有关Flex2的文档,请参阅。它很容易使用 您可以在DataGrid列的labelFunction中使用其中一个函数来格式化数字。如上所述,一种简单的方法是向指定列添加labelFunction并格式化其中的数据 我经常发现处理对象比处理纯XML容易得多

我有一个xml文件,为Flex2中的datagrid提供数据,其中包括一个未格式化的价格字段(即:它只是一个数字)。 有谁能告诉我如何处理数据域和格式化它-添加一个货币符号,放入千个分隔符等等。 谢谢
那么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。这是正确的解决方案。我完全同意你的看法