I would use a sort function, so I could debug any problems.

 

I'd also suggest an e4x expression instead of the loop.

 

Tracy

 

  _____  

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of anuj181
Sent: Wednesday, March 04, 2009 6:51 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Problem in sorting XMLList collection as a
dataProvider for the list

 

Hi Guys
I am trying to sort the xmllist collection which is the dataprovider for the
list. As the implementation of name-value pairs, i am displaying the entries
in form of string in List and would like to sort all the data displayed in
the List alphabetically, I am making a call through amfphp call to grab data
from backend and populate XMLListCollection but now I need to sort the data
in the list. Below is the code,Can anyone please help me where I am messing
things up. Also please let me know if there is any question regarding the
code and if there is better way of doing it.

Thanks

/******************CODE************/

<mx:RemoteObject id="amfSetup" source="Setup" destination="amfphp"> 
<mx:method name="getList" result="getListHandler(event);"
fault="getListFault(event);"/> 
</mx:RemoteObject>

[Bindable] private var entriesXmlListFull:XMLList;
[Bindable] private var entriesXmlCollection:XMLListCollection;


public function getListHandler(event:ResultEvent):void
{ 

entriesXmlListFull = XML(event.result).device;
populateEntries();
}
private function getListFault(event:FaultEvent):void
{
Alert.Show("Error retreiving Data");
}

//Displaying names need to be displayed in the List box
private function entriesLabelFunc(item:Object):String
{
var xmlItem:XML = item as XML;

return xmlItem..attribute.(@name=="friendlyname");
}

//Populating List with XML Objects
private function populateEntries():void
{
entriesXmlCollection = new XMLListCollection(); 

for each(var item:XML in entriesXmlListFull)
{

var friendlyName:String = item..attribute.(@name=="friendlyname");
//Only add camera type
if ( !recordValue && hasFriendlyName && (itemType.toUpperCase() == "CAMERA")
)
{
entriesXmlCollection.addItem(item);
}
}

//Calling Sort on XMLList collection 
entriesXmlCollection.sort = sortList;
entriesXmlCollection.refresh(); 


}


<mx:Sort id="sortList">
<mx:fields>
<mx:SortField name="*" caseInsensitive="true" />
</mx:fields>
</mx:Sort>

<mx:List id="listData" dataProvider="{entriesXmlCollection}"
labelFunction="entriesLabelFunc"/>



Reply via email to