Flex:数字的DataGrid列格式

时间:2012-05-04 19:23:57

标签: flex actionscript

我正在尝试格式化DataGrid列中的某些数字。当我运行它时,我的简化测试程序中出现错误。到目前为止我看到的所有示例都有列数据。有没有办法用数字做?如何修改下面的代码来格式化checking值?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

<fx:Script>
    <![CDATA[       
        [Bindable]
        public var checking:Array = new Array(1000000.2222, 0, 1000);

        private function myLabelFunction(item:Array, column:DataGridColumn):String {    
                var result:String;
                result = myFormatter.format(item);
                return result;
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <s:NumberFormatter id="myFormatter"
                       fractionalDigits="2" 
                       decimalSeparator="."
                       groupingSeparator=","
                       useGrouping="true"
                       negativeNumberFormat="0"
                       />
</fx:Declarations>

<mx:DataGrid id="dg1" dataProvider="{checking}" >

    <mx:columns>
        <mx:DataGridColumn dataField="checking" headerText="Checking" 
                           labelFunction="myLabelFunction" />
    </mx:columns>

</mx:DataGrid>

</mx:Application>

3 个答案:

答案 0 :(得分:2)

  1. 更改过滤器功能签名(item应为Object

    private function myLabelFunction(item:Object, column:DataGridColumn):String

  2. 从列中删除dataField="checking"

答案 1 :(得分:1)

虽然标签功能肯定会起作用 - 我通常更喜欢这样的东西的ItemRenderer。您可以覆盖渲染功能,然后您可以在网格视图“框”中显示它,无论您喜欢它。

一个不错的例子是here。向下滚动大约1/4的DataGrid示例。

答案 2 :(得分:0)

如果是对象,你必须使用/ No caso de objeto,deve-se usar:

        private function myLabelFunction(item:Object, column:GridColumn):String {    
            var result:String;
            result = myFormatter.format(item[column.dataField]);
            return result;
        }