Flex Gumbo中如何利用正则表达式过滤XMLListCollection数据的例子
By Minidxer | August 4, 2009
接下来的Flex Gumbo中如何利用正则表达式,过滤XMLListCollection数据。
下面是main.mxml:
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application name="XMLListCollection_filterFunction_RegExp_test"
- xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/halo"
- backgroundColor="white">
- <s:layout>
- <s:BasicLayout />
- </s:layout>
- <fx:Script>
- <![CDATA[
- private function textInput_change():void {
- if (textInput.text.length == 0) {
- xmlListColl.filterFunction = null;
- } else {
- xmlListColl.filterFunction = xmlListColl_filterFunc;
- }
- xmlListColl.refresh();
- }
- private function xmlListColl_filterFunc(item:Object):Boolean {
- if (textInput.text.length == 0) return true;
- var f:String = "ig";
- var wasRegExp:RegExp = new RegExp(textInput.text, f);
- var nowRegExp:RegExp = new RegExp(textInput.text, f);
- var wasMatch:Boolean = wasRegExp.test(item.@was);
- var nowMatch:Boolean = nowRegExp.test(item.@now);
- return (wasMatch || nowMatch);
- }
- ]]>
- </fx:Script>
- <fx:Declarations>
- <mx:XML id="nodesXML" source="nodes.xml" />
- <mx:XMLListCollection id="xmlListColl"
- source="{nodesXML.node}"
- filterFunction="xmlListColl_filterFunc" />
- </fx:Declarations>
- <s:VGroup left="10" right="10" top="10">
- <mx:ApplicationControlBar>
- <mx:Form styleName="plain">
- <mx:FormItem label="Filter:">
- <s:TextInput id="textInput"
- change="textInput_change();" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:DataGrid id="dataGrid"
- dataProvider="{xmlListColl}"
- verticalScrollPolicy="on"
- width="100%"
- rowCount="10">
- <mx:columns>
- <mx:DataGridColumn dataField="@was" headerText="Was:" />
- <mx:DataGridColumn dataField="@now" headerText="Now:" />
- </mx:columns>
- </mx:DataGrid>
- <s:RichEditableText id="sdkVer"
- editable="false"
- fontWeight="bold"
- initialize="sdkVer.text = mx_internal::VERSION;" />
- </s:VGroup>
- </s:Application>
下面是nodes.xml的代码:
- <?xml version="1.0" encoding="utf-8"?>
- <nodes>
- <node was="mx.components.ButtonBarButton" now="spark.components.ButtonBarButton" />
- <node was="mx.components.DataGroup" now="spark.components.DataGroup" />
- <node was="mx.components.DropDownList" now="spark.components.DropDownList" />
- <node was="mx.components.FxButton" now="spark.components.Button" />
- <node was="mx.components.FxButtonBar" now="spark.components.ButtonBar" />
- <!-- ... -->
- </nodes>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Gumbo, Other |
No Comments » |
Tags: filterFunction, Gumbo, test()