DataGridで数値順でソートさせる

November 20, 2009,
tags: flex


このエントリーをはてなブックマークに追加

DataGridで数値をソートさせようとおもったらちゃんとソートしてくれなかったのでメモのこしておきます。

DataGridColumnタグの中に属性「sortCompareFunction」を追加します。
値はソートのロジックを書いたメソッド名を指定すればおkです。

<mx:DataGrid id="datagrid" dataProvider="{xmlDoc.product}"
			x="31" y="27" editable="true">
 <mx:DataGridColumn headerText="価格" dataField="price" editorDataField="value" sortCompareFunction="sortPrice">
</mx:DataGrid>

ソート用のロジックはこんな感じ。

private function sortPrice(obj1:Object, obj2:Object):int {
     var num1:Number = obj1.price;
     var num2:Number = obj2.price;
     if (num1 < num2) {
         return -1;
     } else if (num1 > num2) {
         return 1;
     } else {
         return 0;
     }
 }
comments powered by Disqus