Jul 12

接下来的例子演示了Flex中如何通过filterFunction属性,对XMLListCollection进行筛选。

让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white">
  3.  
  4.     <mx:Script>
  5.         <![CDATA[
  6.             private function filterFunc(item:Object):Boolean {
  7.                 return item.text().match(new RegExp("^" + stateName.text, "i"));
  8.             }
  9.         ]]>
  10.     </mx:Script>
  11.  
  12.     <mx:XML id="dp" source="countries_states.xml" format="e4x" />
  13.  
  14.     <mx:XMLListCollection id="xmlListColl" source="{dp.country.(@name == 'United States of America').state}" filterFunction="filterFunc" />
  15.  
  16.     <mx:VBox>
  17.         <mx:HBox width="100%">
  18.             <mx:Label text="Name:" />
  19.             <mx:TextInput id="stateName" width="100%" change="xmlListColl.refresh()" />
  20.         </mx:HBox>
  21.  
  22.         <mx:DataGrid id="dataGrid" dataProvider="{xmlListColl}">
  23.             <mx:columns>
  24.                 <mx:DataGridColumn id="codeCol" dataField="@code" headerText="Abbr:" width="60" />
  25.                 <mx:DataGridColumn id="nameCol" dataField="*" headerText="Name:" width="240" />
  26.             </mx:columns>
  27.         </mx:DataGrid>
  28.         <mx:Label text="Filtered: Showing {xmlListColl.length} record(s)" visible="{stateName.text.length > 0}" />
  29.     </mx:VBox>
  30.  
  31. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer

written by Minidxer  |  tags: , , ,

One Response to “Flex中如何通过filterFunction属性对XMLListCollection进行筛选的例子”

Trackbacks

Leave a Reply