计算datagrid行的总和

时间:2010-06-06 20:13:24

标签: flex datagrid

我有这个datagrid,它有一个带有NumericStepper的列作为itemEditor,用户可以在其中更改他想要购买的项目数。当用户更新datagrid的值时,如何计算所有单元格的总和?

编辑1

我的数据网格是关于产品的颜色和大小。列是从此函数动态生成的

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;
 }

然后我循环我的xml http结果

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

那么如何找到所有细胞的总和?

编辑2

我使用此代码循环所有单元格

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

row.size28是动态生成的。所以它可能是row.size29,row.size30等。

如何在不知道data.property的情况下遍历我的所有单元格?

提前致谢

1 个答案:

答案 0 :(得分:0)

您的数字步进器应显示您显示的[data]行中的可绑定属性值。 然后你只需要解析datagrid的dataProvider并得到data.property的总和。

代表:

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

数据网格将有一个NumericStepper自定义列,其值为{data.itemsNo}

最后只计算datagrid.dataProvider项目中的所有itemsNo