2010-06-06 4 views
0

J'ai cette grille de données qui a des colonnes avec un NumericStepper comme itemEditor où l'utilisateur peut changer le nombre d'éléments qu'il veut acheter. Comment puis-je calculer la somme de toutes les cellules lorsque l'utilisateur met à jour les valeurs de dataagrid?Calculer la somme des lignes d'une grille de données

EDIT 1

Mon DataGrid est sur les couleurs et les tailles d'un produit. Les colonnes sont générées dynamiquement à partir de cette fonction

private function getColumn(dataField:String, headerText:String,editable:Boolean) : DataGridColumn 
{ 
    var column:DataGridColumn = new DataGridColumn(dataField); 
    column.headerText = headerText; 
    column.width = 20; 
    editable ? column.editable = true : column.editable = false; 
    column.editorDataField = "value"; 
    column.itemEditor = new ClassFactory(ColorSizesFormRenderer); 
    return column; 
} 

et je boucle mon http xml résultat

for each (var thisSize:XML in result.product.(@id == pId)..size) { 
      _columns.push(getColumn("size"+thisSize,thisSize,true)); 
} 

Alors, comment puis-je trouver la somme de toutes les cellules?

EDIT 2

J'utilise ce code à boucle toutes mes cellules

protected function color_sizes_itemFocusOutHandler(event:DataGridEvent):void 
{ 
    total = 0; 
    for each(var row:Object in color_sizes.dataProvider) { 
    total += row.size28; 
    } 
} 

le row.size28 est généré dynamiquement. Il peut donc être row.size29, row.size30, etc.

Comment puis-je faire défiler toutes mes cellules sans connaître leurs données.property?

Merci à l'avance

Répondre

0

Votre stepper numérique doit afficher une valeur de propriété liable de la ligne [de données] vous affichez. Ensuite, il suffit d'analyser le dataProvider de la grille de données et de faire la somme de cette propriété data.property.

Ex:

class MyObject 
{ 
    [Bindable] 
    var itemsNo:int = 0; 
    var productName:String = ""; 
} 

Le DataGrid une colonne personnalisée NumericStepper qui prendra la valeur de {} data.itemsNo

A la fin il suffit de compter tous itemsNo des articles de DataGrid.dataProvider

Questions connexes