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

Twitter ツイート Hatena Bookmark ブックマーク

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

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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
Built with Hugo
テーマ StackJimmy によって設計されています。