如何将currencyformatter放在flex datagrid列中?

时间:2011-01-26 14:57:21

标签: flex flash datagrid adobe format

我需要使用货币格式化程序格式化列。我知道如何进行货币格式化我只需要一个关于如何将其实现到datagrid列的示例。

3 个答案:

答案 0 :(得分:1)

无需使用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" />

答案 1 :(得分:1)

或者:

private function formatarValor(item:Object, coluna:DataGridColumn):String{
    return realFormatter.format(item[coluna.dataField]);
}

答案 2 :(得分:1)

基于ActionScript的答案,不需要定义其他功能:

var currencyFormatter:CurrencyFormatter = new CurrencyFormatter();
var gridCol:GridColumn = new GridColumn("My Money");
gridCol.dataField = "amount";
gridCol.formatter = currencyFormatter;

Adobe docs开始,labelFunction属性对于执行更复杂的任务非常有用,例如将数据提供程序中的两个字段组合到一个列中。但是对于一个简单的任务,例如格式化货币值,上面的代码就足够了。