Flex中利用SortField和Sort类对ArrayCollection进行排序的例子 - IDC资讯网_站长学院 - Java PHP Flex Python Ajax CSS 编程 开源 学习 总结 分享
Flex中利用SortField和Sort类对ArrayCollection进行排序的例子
主要代码如下:
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();



<?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>
编程语言 | 评论(0) | 引用(0) | 阅读(5237)