flex,datagrid数值列排序

 最近使用flex的datagrid发现一问题,如果该dataGrid 有一列是数值列,点击表头排序的时候希望它按数字来排的。可是它默认是排序方式按字符串排序的。
解决问题的方式很简单可以自定义排序方法,然后和dataGrid的该列的 sortCompareFunction绑定。
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> 
 <mx:Script>
  
  <![CDATA[
    import mx.rpc.http.mxml.HTTPService;
    import flash.events.*;
    import mx.rpc.events.ResultEvent;
    
    public var interfaceXmlList:XMLList;
   public function init(){
    
   var http_refreshmap:HTTPService=new HTTPService();
   http_refreshmap.url="c://switch.xml";
   http_refreshmap.resultFormat="xml";
   http_refreshmap.useProxy=false;
   http_refreshmap.addEventListener(ResultEvent.RESULT,refreshMap);
   http_refreshmap.send();
   }
   //安数值大小排序
   public function sortcompare(obj1:Object,obj2:Object):int
   {
    
                        var num1:Number=Number(obj1.@send.toString());
                        trace(num1);
                          var num2:Number=Number(obj2.@send.toString());
                         trace(num2);
                        if(num1>num2){
                                return 1;
                        }else if(num1<num2){
                                return -1;
                        }else{
                                return 0;
                        }
            }
   public function refreshMap(e:ResultEvent):void{
    var dataXml:XML=(XML)(e.result);
    
    var interfacesAttr:XML=new XML();
    interfacesAttr=XML(dataXml["interfaces"]); 
    
    interfaceXmlList=interfacesAttr.children();
    trace(interfaceXmlList.toString());
      trace("2222");
    dgPosts.dataProvider=interfaceXmlList;
     }
   
  ]]>
 </mx:Script>

  <mx:DataGrid id="dgPosts" x="20" y="20" width="400">
   <mx:columns>
    <mx:DataGridColumn headerText="ss" dataField="@receive" width="200" sortable="true" sortCompareFunction="sortcompare"/>
    <mx:DataGridColumn headerText="分" dataField="@send" width="200" sortable="true" sortCompareFunction="sortcompare"/>
   </mx:columns>
  </mx:DataGrid> 
</mx:Application>

sortcompare为自定义的排序方法send在XML中是以属性的形式出现故加@.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值