Thanks so much it worked a treat!
--- In flexcoders@yahoogroups.com, "iko_knyphausen" <[EMAIL PROTECTED]> wrote: > > > You could e4x as resultFormat and then bind this to an > XMLListCollection, which in turn you can filter with a function. In e4x > you would omit the root tag (probably =stockreport in your case) and > use "stockFeed.lastResult.products.product" as a source for > databinding.... > > > --- In flexcoders@yahoogroups.com, "bnprrsh" <ben@> wrote: > > > > Hi, > > > > I am trying to use the filter function on anrray collection with a > > http service lastResult source. > > > > I can't get passed this error "TypeError: Error #1034: Type Coercion > > failed: cannot convert mx.collections::[EMAIL PROTECTED] to > > Array." It seems to work fine when using my had coded object but I > > cant get it working with a httpservice no matter what resultFormat I > > choose. > > > > My Code: > > ====================================================================== > > > > <?xml version="1.0" encoding="utf-8"?> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > > layout="vertical" creationComplete="stockFeed.send()"> > > > > <mx:Script> > > <![CDATA[ > > import mx.utils.ArrayUtil; > > > > // On startup > > public function initApp():void > > { > > > > // Set filter function > > // Be careful to set filterFunction > > // only after ArrayCollection has been > > // populated. > > myData.filterFunction=processFilter; > > } > > > > // Filter function > > public function processFilter(item:Object):Boolean > > { > > var result:Boolean=false; > > > > // If no filter text, or a match, then true > > if (!item.code.length > > || item.code.toUpperCase().indexOf(txtFilter.text.toUpperCase()) >= 0) > > result=true; > > return result; > > } > > ]]> > > </mx:Script> > > > > <mx:HTTPService > > id="stockFeed" > > url="http://www.1on1wholesale.co.uk/members_area/status-xml.asp > > showBusyCursor="true" > > resultFormat="object" > > result="initApp()"/> > > > > <!-- Array Collection Using HTTPSERVICE Source --> > > <mx:ArrayCollection id="myData" > > source="{stockFeed.lastResult.stockreport.products.product}"/> > > > > > > <!-- Array Collection using Hard coded information --> > > <!-- > > <mx:ArrayCollection id="myData"> > > <mx:source> > > <mx:Object code="N0505" name="Monica Rose" status="In Stock" /> > > <mx:Object code="N0506" name="Randy Candice" status="In Stock" /> > > <mx:Object code="N0507" name="Jump Start Foot Pump" status="In > > Stock" /> > > <mx:Object code="N0508" name="Carla Doll" status="Out of Stock" /> > > </mx:source> > > </mx:ArrayCollection> > > --> > > > > > > <!-- UI --> > > <mx:HBox width="100%"> > > <mx:Label text="Filter:"/> > > <mx:TextInput id="txtFilter" width="100%" > > change="myData.refresh()"/> > > </mx:HBox> > > > > <!-- Tile List showing results from filtered array collection --> > > <mx:TileList dataProvider="{myData}" width="100%" height="300" > > columnCount="2" rowCount="2"> > > <mx:itemRenderer> > > <mx:Component> > > <mx:VBox paddingLeft="30" width="150" height="150" > > horizontalScrollPolicy="off" verticalScrollPolicy="off"> > > > > <mx:Label text="{data.code}" /> > > <mx:Label text="{data.name}"/> > > <mx:Label text="{data.status}"/> > > </mx:VBox> > > </mx:Component> > > </mx:itemRenderer> > > </mx:TileList> > > > > <!-- Data Grid showing results from filtered array collection --> > > <mx:DataGrid dataProvider="{myData}" > > width="100%" height="100%"> > > <mx:columns> > > <mx:DataGridColumn headerText="code" > > dataField="code"/> > > <mx:DataGridColumn headerText="name" > > dataField="name"/> > > <mx:DataGridColumn headerText="status" > > dataField="status"/> > > </mx:columns> > > </mx:DataGrid> > > > > <!-- Datagrid showing results without filtering --> > > <mx:DataGrid > > dataProvider="{stockFeed.lastResult.stockreport.products.product}" > > id="testing"/> > > </mx:Application> > > >