当前位置: 代码迷 >> Web前端 >> ArrayCollection排序的例证
  详细解决方案

ArrayCollection排序的例证

热度:146   发布时间:2012-10-11 10:16:10.0
ArrayCollection排序的例子

var ac:ArrayCollection = new ArrayCollection();

//先加入几条测试数据
ac.addItem(
???? {ID:0,userName:AAA},
???? {ID:1,userName:CCC},
???? {ID:2,userName:BBB}
);

//定义Sort对象
var sort:Sort = new Sort();

//默认是按照升序排序的
sort.fields = [new SortField("userName")];

//如果按照降序排序,需要修改一下
//sort.fields = [new SortField("userName",true,true)];

//如果先降序(ID)后升序(userName),就这样写,以此类推
//sort.fields = [new SortField("userID",true,true),new SortField("userName")];

//把sort对象指定给ac
ac.sort = sort;

//执行刷新操作,否则不变
ac.refresh();

?

?

2、另外一个

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()"> 
  
    <mx:Script> 
        <![CDATA[ 
            import mx.collections.SortField; 
            import mx.collections.Sort; 
            import mx.collections.ArrayCollection; 
  
            [Bindable] 
            private var arrColl:ArrayCollection; 
  
            /** This method gets called by the main mx:Application tag and initializes/populates the ArrayCollection object with a bunch of random numbers. */ 
            private function init():void { 
                var i:int; 
  
                /* Initialize and populate the ArrayCollection object. */ 
                arrColl = new ArrayCollection(); 
                for (i = 0; i < 20; i++) { 
                    arrColl.addItem({data:getRandomNumber().toFixed(4)}); 
                } 
            } 
  
            /** This method returns a random floating-point number between 0 and 10000. */ 
            private function getRandomNumber():Number { 
                return Math.random() * 10000; 
            } 
  
            /** This method gets called by the Button control's click handler and creates a new SortField and Sort object which are used to sort the ArrayCollection. */ 
            private function button_click():void { 
                /* Create the SortField object for the "data" field in the ArrayCollection object, and make sure we do a numeric sort. */ 
                var dataSortField:SortField = new SortField(); 
                dataSortField.name = "data"; 
                dataSortField.numeric = true; 
  
                /* Create the Sort object and add the SortField object created earlier to the array of fields to sort on. */ 
                var numericDataSort:Sort = new Sort(); 
                numericDataSort.fields = [dataSortField]; 
  
                /* Set the ArrayCollection object's sort property to our custom sort, and refresh the ArrayCollection. */ 
                arrColl.sort = numericDataSort; 
                arrColl.refresh(); 
            } 
        ]]> 
    </mx:Script> 
  
    <mx:List id="list" dataProvider="{arrColl}" textAlign="right" labelField="data" width="100" /> 
  
    <mx:Button id="button" label="sort items" click="button_click()" /> 
  
</mx:Application>

?