2012-10-10 1 views
0

J'ai un DataGrid dans mon code qui ressemble à ceci:ActionScript: Tri DataGrid et obtenir des données à partir de cellules spécifiques par programme

<s:DataGrid id="dg"> 
    <s:ArrayCollection id="ac"> 
    <s:DataItem ../> 
    <s:DataItem ../> 
    </s:ArrayCollection> 
</s:DatGrid> 

Je suis en train d'avoir une étiquette distincte (par défaut) afficher les données d'un cellule particulière après tri des données d'une manière particulière.

Par exemple:

DataGrid shows: 

Date Type 
---- ---- 
8  yes  
12 no 
6  this 
7  that 

Label: 6 (First date after sorting in ascending order) 

De toute façon facile, je peux le faire dans ActionScript (ou autre)? Dois-je essayer de travailler avec le composant ArrayCollection ou le DataGrid?

Merci,

Répondre

0

figured it out, en utilisant la référence sorting ArrayCollection. Utilisé deux méthodes différentes pour le tri et l'extraction:

Tri:

private function sortFunction(a:Object, b:Object, array:Array = null):int 
{ 
    ..my sorting code.. 
} 

public function Grid_onLoad(event:Event):void 
{ 
    var sort:Sort = new Sort(); 
    sort.compareFunction = sortFunction; 
    items.sort = sort; 
    items.refresh(); 
} 

Extraction:

public function FirstDate():String 
{ 
    return items.getItemAt(0).Date; 
} 

Alors juste une question d'appeler les fonctions de façon appropriée:

<s:DataGrid id="items" initialize="Grid_onLoad(event)"> 
    <s:ArrayCollection id="ac"> 
    <s:DataItem ../> 
    <s:DataItem ../> 
    </s:ArrayCollection> 
</s:DatGrid> 

<s:Label text="{FirstDate()}"/> 
Questions connexes