gewusst wie: Sortieren einer flex datagrid nach mehreren Spalten?

Ich habe ein datagrid, gefüllt, wie unten gezeigt. Klickt der Benutzer auf die Kopfzeile einer Spalte, würde ich gerne die Zeilen zu Sortieren mit Hilfe einer lexikographischen Sortierung, in denen die ausgewählte Spalte wird zuerst verwendet, dann werden die verbleibenden Spalten in Links-nach-rechts, um zu brechen alle Beziehungen. Wie kann ich den code dazu?

(Ich habe eine Antwort, die werde ich nach unten, aber es hat ein problem -- ich werde begeistert sein, wenn jemand eine bessere!)

Hier ist das layout:

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

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" creationComplete="onCreationComplete()">

    <mx:Script source="GridCode.as" />

    <mx:DataGrid id="theGrid" x="61" y="55" width="466" height="317">
        <mx:columns>
            <mx:DataGridColumn dataField="A"/>
            <mx:DataGridColumn dataField="B"/>
            <mx:DataGridColumn dataField="C"/>
        </mx:columns>
    </mx:DataGrid>

</mx:Application>

Und hier der backing-code:

import mx.collections.ArrayCollection;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.events.DataGridEvent;

public function onCreationComplete():void
{
    var ar:ArrayCollection = new ArrayCollection();
    var ob:Object;
    for( var i:int=0; i<20; i++ )
    {
        ob = new Object();
        ob["A"] = i;
        ob["B"] = i%3;
        ob["C"] = i%5;
        ar.addItem(ob);
    }
    this.theGrid.dataProvider = ar;
}
InformationsquelleAutor Eric | 2008-09-17
Schreibe einen Kommentar