Archive

Posts Tagged ‘Arraycollection’

Searching an item within Array, Arraycollection

Searching Within the Array

We all know Array and Arraycollection provides the facilities of doing sort in themselves but some times there are needs to search the Array/Arraycollection depending on the entered search term. So that is something which we need to implement. So here is the simple logic to search the item in the Array/Arraycollection

 

<?xml version=”1.0″?>

<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” initialize=”initApp()”>

 <!–Shashank Kulkarni–>

 <mx:Script>

 <![CDATA[

  import mx.utils.StringUtil;

  import mx.utils.ObjectUtil;

  import mx.controls.Alert;

 import mx.collections.ArrayCollection;

  private var arr:Array= new Array('Shashank', 'Tushar', 'Ashish','Kailas','Rahul','Pankaj','Shrikant','Amol','pravin');

 [Bindable]

 private var ac:ArrayCollection= new ArrayCollection([{Name:'Shashank'}, {Name:'Tushar'}, {Name:'Ashish'},{Name:'Kailas'},{Name:'Rahul'},{Name:'Pankaj'},{Name:'Shrikant'},{Name:'Amol'},{Name:'pravin'}]);

  private var resultAC:Array;

  private function initApp():void

{

dgList.dataProvider = ac;

txtResult.text = ;

txiSearch.text = ;

}

  private function search():void

{

resultAC = new Array();

 for(var i:int=0;i<arr.length;i++)

{

 var tempArr:Array = new Array();

  var str:String = String(arr[i]).toLowerCase();

 tempArr = str.match(StringUtil.trim(txiSearch.text).toLowerCase());

 if(tempArr!=null)

{

if(tempArr.index==0)

{

resultAC.push({Name:arr[i]});

}

}

}

assignValues();

}

 private function searchAc():void

{

resultAC = new Array();

for(var i:int=0;i<ac.length;i++)

{

var tempArr:Array = new Array();

 var str:String = String(ac[i].Name).toLowerCase();

 tempArr = str.match(StringUtil.trim(txiSearch.text).toLowerCase());

 if(tempArr!=null)

{

if(tempArr.index==0)

{

 resultAC.push({Name:ac[i].Name});

}

}

}

assignValues();

} 

private function assignValues():void

{

dgList.dataProvider = resultAC;

txtResult.text = ;

for(var j:int=0;j<resultAC.length;j++)

{

txtResult.text = txtResult.text + ObjectUtil.toString(resultAC[j].Name);

}

}

]]>

</mx:Script>

<mx:Label text=”Enter Search Term :” x=”116” y=”26/>

<mx:TextInput id=”txiSearch” x=”284” y=”24” enter=”search()”/>

 <mx:Button id=”Search” label=”Search Array Item” click=”search()” x=”114” y=”65/>

<mx:Button id=”SearchAc” label=”Search ArrayCollection Item” click=”searchAc()” x=”280” y=”65/>

<mx:Text x=”174” y=”139” id=”txtResult/>

<mx:Label x=”477” y=”26” text=”Searches Within Array On Direct Enter/>

<mx:DataGrid x=”153” y=”195” id=”dgList>

<mx:columns>

<mx:DataGridColumn headerText=”Name” dataField=”Name/>

</mx:columns>

</mx:DataGrid>

<mx:Button x=”341” y=”247” label=”Refresh” click=”initApp()”/>

 </mx:Application>

 

 

Best Luck   )

Thanks and regards

Shashank Kulkarni

Feel free to mail me :) shashank.pawan@gmail.com