2

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

3 に答える 3

2
  1. フィルタ関数のシグネチャを変更します(itemである必要がありますObject

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

  2. 列から削除dataField="checking"します。

于 2012-05-04T21:02:55.123 に答える
1

ラベル関数は確かに機能しますが、私は通常、このようなものにはItemRendererを好みます。レンダリング機能をオーバーライドすると、グリッドビューの「ボックス」にあるものを好きなように表示できます。

まともな例はここにあります。DataGridの例については、約1/4下にスクロールしてください。

于 2012-05-04T21:18:16.380 に答える
0

オブジェクトの場合は、使用する必要があります/ 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;
        }
于 2013-06-19T14:00:30.403 に答える