【发布时间】:2011-01-26 14:57:21
【问题描述】:
我需要使用货币格式化程序来格式化该列。我知道如何进行货币格式化我只需要一个关于如何将它实现到数据网格列中的示例。
【问题讨论】:
标签: apache-flex flash datagrid adobe format
我需要使用货币格式化程序来格式化该列。我知道如何进行货币格式化我只需要一个关于如何将它实现到数据网格列中的示例。
【问题讨论】:
标签: apache-flex flash datagrid adobe format
无需使用itemRenderer。只需使用labelFunction。示例:
DataGridColumn:
<mx:DataGridColumn headerText="Total Cost" dataField="TotalCost" labelFunction="LabelFormatter"/>
LabelFormatter标签功能:
protected function LabelFormatter(item:Object, column:DataGridColumn):String
{
var returnLabel:String = "";
var header:String = column.headerText;
switch (header)
{
case "Total Cost":
returnLabel = currencyFormat.format(item.TotalCost.toString());
break;
}
return returnLabel;
}
货币格式化程序:
<mx:CurrencyFormatter id="currencyFormat" precision="2" />
【讨论】:
或者:
private function formatarValor(item:Object, coluna:DataGridColumn):String{
return realFormatter.format(item[coluna.dataField]);
}
【讨论】:
不需要定义附加函数的基于 ActionScript 的答案:
var currencyFormatter:CurrencyFormatter = new CurrencyFormatter();
var gridCol:GridColumn = new GridColumn("My Money");
gridCol.dataField = "amount";
gridCol.formatter = currencyFormatter;
从Adobe docs 开始,labelFunction 属性可用于执行更复杂的任务,例如将数据提供程序中的两个字段合并为一列。但是对于像格式化货币值这样的简单任务,上面的代码就足够了。
【讨论】: