Einzelnen Beitrag anzeigen
Alt 05-03-2010, 20:59   #4 (permalink)
sytch
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
hi,
wenn du bei zb. bei personen nach alter sortierst, macht es sinn auch nach dem namen zusätzlich zu sortieren, weil du sonst unter umständen doch keine visuell logische reihenfolge hast... kannst ja mal ausprobieren mit compare und compare1 als funktion, dann siehst du den unterschied... gerade bei personen würde ich auch noch auf den nachnamen gehen, vor dem vornamen... dann kommt auch mit sicherheit "peter pan" vor "peter panzer" ... ;-)

Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication applicationComplete="init()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
	<![CDATA[
		import mx.utils.ObjectUtil;
		import mx.collections.ArrayCollection;
		[Bindable]
		private var persons : ArrayCollection;
		
		private function init():void{
			this.persons = new ArrayCollection();
			
			this.persons.addItem( {name:"Hans",alter:12} );
			this.persons.addItem( {name:"Hans",alter:15} );
			this.persons.addItem( {name:"Hans",alter:17} );
			this.persons.addItem( {name:"Paul",alter:12} );
			this.persons.addItem( {name:"Paul",alter:15} );
			this.persons.addItem( {name:"Paul",alter:17} );
			this.persons.addItem( {name:"Peter",alter:12} );
			this.persons.addItem( {name:"Peter",alter:15} );
			this.persons.addItem( {name:"Peter",alter:17} );
			
		}
		
		private function compare(itemA:Object,itemB:Object):int{
			var alterCompare : int = ObjectUtil.numericCompare( itemA.alter,itemB.alter);
			return alterCompare;
		}
		
		private function compare1(itemA:Object,itemB:Object):int{
			var compare : int =  ObjectUtil.numericCompare( itemA.alter,itemB.alter);
			if( compare == 0){
				compare = ObjectUtil.stringCompare( itemA.name,itemB.name, true);
			}
			return compare;
		}
	]]>
</mx:Script>
	<mx:DataGrid dataProvider="{this.persons}" left = "10" right = "10" id = "uebersicht" height = "100%" bottom = "10" top = "84">
		<mx:columns>
			<mx:DataGridColumn headerText = "Name"  dataField = "name"/>
			<mx:DataGridColumn id="test" headerText = "" dataField = "alter" width = "40" sortCompareFunction="compare1" sortable="true" sortDescending="true"/>
		</mx:columns>
</mx:DataGrid>
</mx:WindowedApplication>
sytch ist offline   Mit Zitat antworten