Apache flex Flex:数字的DataGrid列格式

Apache flex Flex:数字的DataGrid列格式,apache-flex,actionscript,Apache Flex,Actionscript,我试图在数据网格的列中格式化一些数字。当我运行下面的简化测试程序时,它出现了一个错误。到目前为止,我看到的所有示例都有字符串列数据。有没有办法用数字来做?如何修改下面的代码以格式化检查值值 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spa

我试图在数据网格的列中格式化一些数字。当我运行下面的简化测试程序时,它出现了一个错误。到目前为止,我看到的所有示例都有字符串列数据。有没有办法用数字来做?如何修改下面的代码以格式化
检查值

<?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>

  • 更改过滤器功能签名(
    应为
    对象

    私有函数myLabelFunction(项:对象,列:DataGridColumn):字符串

  • 从列中删除
    dataField=“checking”


  • 虽然label函数肯定会起作用,但我通常更喜欢像这样的ItemRenderer。您可以替代渲染函数,然后可以在栅格视图“框”中显示任何您喜欢的内容


    一个很好的例子是。向下滚动大约1/4以查看DataGrid示例。

    如果是对象,则必须使用/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;
            }
    

    很高兴知道,谢谢。如果由于其他原因我已经有了一个ItemRenderer(未显示),我是否可以在其中添加一个格式化程序,这样我就不需要编写另一个ItemRenderer了?我需要更改/添加什么?该示例使用内联项呈现,它们直接绑定到它们“内联”的列。您可以使用外部项渲染器(通常在其自己的脚本文件中),并将其绑定到任意多的列。您只需编写函数来正确操作数据。但是,您只能使用item renderer获取数据对象,因此准确地确定要执行的操作可能很棘手。我想我的问题是,我将在ItemRenderer中使用什么控件来进行格式化?例如,要更改我将使用的文本颜色。我将使用什么控件来放置数字格式?不管怎样,我想我在这里找到了一个示例: