Apache flex 如何将currencyformatter放入flex datagrid列中?
我需要使用货币格式化程序格式化列。我知道如何进行货币格式化,我只需要一个如何将其实现到datagrid列中的示例。无需使用Apache flex 如何将currencyformatter放入flex datagrid列中?,apache-flex,flash,datagrid,adobe,format,Apache Flex,Flash,Datagrid,Adobe,Format,我需要使用货币格式化程序格式化列。我知道如何进行货币格式化,我只需要一个如何将其实现到datagrid列中的示例。无需使用项目渲染器。只需使用labelFunction。例如: 数据网格列: <mx:DataGridColumn headerText="Total Cost" dataField="TotalCost" labelFunction="LabelFormatter"/> protected function LabelFormatter(item:Object, co
项目渲染器。只需使用labelFunction
。例如:
数据网格列:
<mx:DataGridColumn headerText="Total Cost" dataField="TotalCost" labelFunction="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" />
货币格式化程序:
<mx:DataGridColumn headerText="Total Cost" dataField="TotalCost" labelFunction="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" />
或:
基于ActionScript的答案,无需定义其他功能:
var currencyFormatter:CurrencyFormatter = new CurrencyFormatter();
var gridCol:GridColumn = new GridColumn("My Money");
gridCol.dataField = "amount";
gridCol.formatter = currencyFormatter;
从中,labelFunction属性可用于执行更复杂的任务,例如将数据提供程序中的两个字段合并到一列中。但是对于格式化货币值这样的简单任务,上面的代码就足够了。似乎不需要switch语句。LabelFormatter()仅应用于datagrid的单个列。每次调用时,column.headerText等于“总成本”。@Eric在本例中,您完全正确。在我的生产应用程序中,我使用了相同的函数来重新格式化多个列的标签,这就是switch语句出现在其中的原因。为了清晰和简洁,我删除了其他列。