If you have a labelfunction, you'll probably need a custom sortcompare function
Alex Harui Flex SDK Developer Adobe Systems Inc.<http://www.adobe.com/> Blog: http://blogs.adobe.com/aharui From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On Behalf Of anuj181 Sent: Wednesday, March 04, 2009 3: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"/>