Search Flex Components Free

Custom Search

December 25, 2007

Flex Find Functions Source Code


Flex Data Collections Sample Source Code:
Create a file:
FindExample .mxml

<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundAlpha="0"
creationComplete="srv.send()" >

<mx:Script>
<![CDATA[

import mx.collections.*;

[Bindable]
public var ac:ArrayCollection;

private function initList() : void
{
ac = new ArrayCollection(srv.lastResult.roster.player);
}

/**
* Note: Everytime we call one of the find functions, we set the SortField. This is
* to avoid the situation where a user clicks on a column header to sort the DataGrid. In
* this case, the Sort Field will get reset and therefore be undefined if you call a find
* function.
*/
private function createSort() : void
{
var sort:Sort = new Sort();
sort.fields = [new SortField("name", true)];
ac.sort = sort;
ac.refresh();
}

private function findFirst():void
{
createSort();
var cursor:IViewCursor = ac.createCursor();
var values:Object = {name: nameInput.text}
cursor.findFirst(values);
lbl.text = cursor.current.name + " " + cursor.current.lastname + ", " +
cursor.current.initials;
myGrid.setFocus();
}

private function findLast():void
{
createSort();
var cursor:IViewCursor = ac.createCursor();
var values:Object = {name: nameInput.text}
cursor.findLast(values);
lbl.text = cursor.current.name + " " + cursor.current.lastname + ", " +
cursor.current.initials;
}

private function findAny():void
{
createSort();
var cursor:IViewCursor = ac.createCursor();
var values:Object = {name: nameInput.text}
cursor.findAny(values);
lbl.text = cursor.current.name + " " + cursor.current.lastname + ", " +
cursor.current.initials;
}

]]>
</mx:Script>

<mx:HTTPService id="srv" url="../assets/players.xml" result="initList()"/>

<mx:DataGrid id="myGrid" width="400" dataProvider="{ac}" >
<mx:columns>
<mx:DataGridColumn dataField="initials" headerText="Initials"/>
<mx:DataGridColumn dataField="name" headerText="First Name"/>
<mx:DataGridColumn dataField="lastname" headerText="Last Name"/>
</mx:columns>
</mx:DataGrid>

<mx:HBox>
<mx:Label text="Search for name: " />
<mx:TextInput id="nameInput" width="150" text="Steve" />
</mx:HBox>

<mx:HBox>
<mx:Button label="Find First" click="findFirst();" />
<mx:Button label="Find Last" click="findLast();" />
<mx:Button label="Find Any" click="findAny();" />
</mx:HBox>

<mx:Label id="lbl" width="300" />

</mx:Application>

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

<roster>

<player>
<initials>JAS</initials>
<name>John</name>
<lastname>Smith</lastname>
</player>
<player>
<initials>JBS</initials>
<name>Jason</name>
<lastname>Smith</lastname>
</player>
<player>
<initials>MHS</initials>
<name>Michael</name>
<lastname>Snow</lastname>
</player>
<player>
<initials>JAG</initials>
<name>John</name>
<lastname>Glass</lastname>
</player>
<player>
<initials>SVH</initials>
<name>Steve</name>
<lastname>Harris</lastname>
</player>
<player>
<initials>MW</initials>
<name>Michael</name>
<lastname>Wilkes</lastname>
</player>
<player>
<initials>JBS</initials>
<name>Jason</name>
<lastname>Soriano</lastname>
</player>
<player>
<initials>HTE</initials>
<name>Houston</name>
<lastname>Elss</lastname>
</player>
<player>
<initials>JBE</initials>
<name>John</name>
<lastname>Elk</lastname>
</player>
<player>
<initials>SJK</initials>
<name>Steve</name>
<lastname>Kim</lastname>
</player>
<player>
<initials>SLM</initials>
<name>Steve</name>
<lastname>Mai</lastname>
</player>
<player>
<initials>HK</initials>
<name>Harry</name>
<lastname>Kim</lastname>
</player>
<player>
<initials>SMG</initials>
<name>Steve</name>
<lastname>Gonzales</lastname>
</player>
</roster>

Related Flex Tutorials