Ich habe ein Datagrid, wie unten gezeigt. Wenn der Benutzer auf eine Spaltenüberschrift klickt, möchte ich die Zeilen mit einer lexikographischen Sortierung sortieren, in der die ausgewählte Spalte zuerst verwendet wird. Anschließend werden die verbleibenden Spalten in der Reihenfolge von links nach rechts verwendet, um alle Verknüpfungen aufzuheben. Wie kann ich das programmieren?Wie wird ein Flex-Datagrid nach mehreren Spalten sortiert?
(! Ich habe eine Antwort, die ich weiter unten schreiben werde, aber es hat ein Problem - ich begeistert sein werde, wenn jemand ein besseres zur Verfügung stellen kann)
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 ist der Träger 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;
}