J'ai besoin de commander un tableau d'articles par leurs numéros d'article sur une grille de données dans Flex 3.5.Trier les numéros d'article avec point sur la collection de tableaux en flex
Je n'ai pas vraiment besoin de le ré-ordonner une fois qu'il est dans la grille de données, j'ai juste besoin qu'il soit déjà trié sur la collection de tableaux avant de l'envoyer au fournisseur de données.
Mon problème est que le proprety « item_number » que je dois trier c'est une chaîne et il est construit avec le numéro de lot et un point, comme celui-ci:
1.1, 1.2, 1.3, 2.1 , 2.2, 3.1 , 3.2, 3.3, 3.4 , 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
J'ai besoin qu'il soit commandé comme ça.
Si j'essaie de les trier par numéro, 3.2 est plus grand que 3.11, donc ça ne marcherait pas. J'ai besoin de les ordonner d'abord par l'entier avant le point et seulement après, par l'entier après le point, avant de passer à l'entier suivant avant le point
J'ai aussi un autre problème. L'attribut item_number se trouve dans un objet situé dans un autre objet de ma collection de tableaux.
Pour arriver à ce que je dois:
array_collection.item.item_number
Donc, pour résumer, je dois énumérer un ensemble ordonné par un attribut qui est dans un autre objet de la arrayitem et il est un nombre sur une chaîne séparée par un point.
Ceci est une version simplifiée de mon code:
<mx:Script>
<![CDATA[
public function print_data_grid(array_collection):void
{
my_data_grid.dataProvider = array_collection
}
]]>
</mx:Script>
<mx:DataGrid id="my_data_grid">
<mx:columns>
<mx:DataGridColumn headerText="# Item">
<mx:itemRenderer>
<mx:Component>
<mx:Label toolTip="{this.text}" text="{data.product.item_number}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Item Name">
<mx:itemRenderer>
<mx:Component>
<mx:Label toolTip="{this.text}" text="{data.product.name}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
Voir http://stackoverflow.com/questions/9429142/how-to-sort-an-arraycollection-in-flex – Brian