【发布时间】:2015-06-19 08:44:08
【问题描述】:
我有一个包含标题、价格、数量和总计列的数据网格。标题、价格和数量数据是从 xml 文件加载的,总数填充有 labelFunction 以将价格乘以数量。
我可以通过将字符串返回到总列下的行来使用 labelFunction 填充每一行的总和,但我无法弄清楚如何获取总列的总和。我想获得总体总数并将其显示在数据网格之外的文本框/其他地方。
我可以使用 updateEsimate 函数获得总数,但它只会使用数据网格上的 itemEditEnd 发送总数(这意味着我必须单击eat qty 行才能计算)和我希望它在加载后自动给我总数。
请帮忙!
(一些示例代码)
public function updateEstimate(event:DataGridEvent):void
{
// TODO Auto-generated method stub
var sum:Number = 0;
for(var i:int=0; i<orderGrid.dataProvider.length ; i++) {
sum += Number(orderGrid.dataProvider.getItemAt(i).total);
totaltxt.text = sum.toString();
}
totaltxt.text = sum.toString();
}
public function getTotal(item:Object, column:DataGridColumn):String
{
var sum:Number = item.price * item.quantity;
return sum.toString();
}
<mx:XMLListCollection id="xmlProdListColl"
source="{productXML.lastResult.offer}"
/>
</fx:Declarations>
<mx:DataGrid id="orderGrid" x="44" y="0" width="640" height="155"
dataProvider="{xmlProdListColl}"
doubleClickEnabled="true" editable="true"
itemEditEnd="orderGrid_itemEditEndHandler(event); updateEstimate(event)">
<mx:columns>
<mx:DataGridColumn headerText="Title" dataField="title" editable="false"/>
<mx:DataGridColumn headerText="Price" dataField="price" editable="false"/>
<mx:DataGridColumn headerText="Quantity" dataField="quantity"/>
<mx:DataGridColumn headerText="Total" labelFunction="getTotal" editable="false"/>
</mx:columns>
</mx:DataGrid>
<s:RichText id="totaltxt" width="147" height="84" fontSize="18" text="" textAlign="center"
verticalAlign="middle" />
【问题讨论】:
标签: apache-flex datagrid flash-builder