您的位置:首页 > 其它

Sorting and filtering data in an XMLListCollection

2008-01-10 18:09 573 查看
The following code is a brief example of sorting a Flex XMLListCollection using the Sort and SortField classes, and the
XMLListCollection.sort
property. We also look at filtering the XMLCollection using a custom filter function.

<?xml version="1.0" encoding="utf-8"?>

<!-- http://blog.flexexamples.com/2007/08/22/sorting-and-filtering-data-in-an-xmllistcollection/ -->

<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.controls.*;

private function init():void {

describeTypeXML = describeType(DataGrid);

factoryMethodsXLC.source = describeTypeXML.factory.method;

}

private function sortXLC():void {

var nameSort:Sort = new Sort();

nameSort.fields = [new SortField('@name', true)];

factoryMethodsXLC.sort = nameSort;

factoryMethodsXLC.refresh();

}

private function filterXLC():void {

if (filterCh.selected) {

factoryMethodsXLC.filterFunction = declaredBy_filterFunc;

factoryMethodsXLC.refresh();

} else {

factoryMethodsXLC.filterFunction = null;

factoryMethodsXLC.refresh();

}

}

private function declaredBy_filterFunc(item:XML):Boolean {

return item.@declaredBy == describeTypeXML.@name;

}

]]>

</mx:Script>

<mx:XML id="describeTypeXML" />

<mx:XMLListCollection id="factoryMethodsXLC" />

<mx:VBox>

<mx:DataGrid id="factoryMethodsGrid"

dataProvider="{factoryMethodsXLC}"

width="400"

rowCount="7">

<mx:columns>

<mx:DataGridColumn dataField="@name" />

<mx:DataGridColumn dataField="@returnType" />

<mx:DataGridColumn dataField="@declaredBy" />

</mx:columns>

</mx:DataGrid>

<mx:HBox width="100%">

<mx:Button id="sortBtn"

label="Sort ({factoryMethodsGrid.dataProvider.length} items)"

click="sortXLC()" />

<mx:Spacer width="100%" />

<mx:CheckBox id="filterCh"

label="{describeTypeXML.@name} only"

click="filterXLC()" />

</mx:HBox>

</mx:VBox>

</mx:Application>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐