Tengo una cuadrícula de datos, rellenada como se muestra a continuación. Cuando el usuario hace clic en el encabezado de una columna, me gustaría ordenar las filas usando un orden lexicográfico en el que se utiliza primero la columna seleccionada, luego las columnas restantes se usan en orden de izquierda a derecha para romper cualquier vínculo. ¿Cómo puedo codificar esto?cómo ordenar una cuadrícula de datos flexible según múltiples columnas?
(! Tengo una respuesta, que voy a publicar más adelante, pero tiene un problema - Estaré encantado si alguien puede proporcionar una mejor)
Aquí está el diseño:
<?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>
Y aquí está el código de respaldo:
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;
}