Flex中利用Sort和SortField类以及XMLListCollection.sort属性对XMLListCollection中的数据进行过滤的例子
By Minidxer | August 1, 2008
接下来的例子演示了Flex中如何利用Sort和SortField类以及XMLListCollection.sort属性,对XMLListCollection中的数据进行过滤。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整实现代码(或点击这里察看):
Download: main.mxml
- <?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.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>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
Tags: describeType(), sort, SortField, XMLListCollection