我想创建一个包含4列的数据网格:description, quantity, price, and line total
。线总数将仅仅是数量和产品的乘积。价钱。我希望网格的最后一行是所有行总数的总和。
如何创建此类网格?我想过使用项目渲染器,但我无法弄清楚如何将最后一行用于行项目总计。
如果我必须创建自定义组件,我会欣赏有关自定义组件创建的书籍建议。虽然我对如何创建自定义组件有一般性的了解,但我并不像我想的那样牢牢抓住它。感谢。
答案 0 :(得分:1)
虽然您一定要查看www.Flextras.com提供的链接,但有几种方法可以提供您所需要的功能:
最简单的是labelFunction:
<DataGrid dataProvider="{dp}">
<columns>
<DataGridColumn labelFunction="sumTotals" />
</columns>
</DataGrid>
private function sumTotals(item:Object,column:DataGridColumn):String {
return Number(item.quantity * item.price).toString();
}
或者,您可以创建自己的itemRenderer,如下所示:
<!-- MyItemRenderer.mxml -->
<mx:Label>
<mx:Script>
override public function set data(value:Object):void {
super.data = value;
this.label = Number(item.quantity * item.price).toString();
}
</mx:Script>
</mx:Label>
<!-- Your component -->
<DataGrid dataProvider="{dp}">
<columns>
<DataGridColumn itemRenderer="MyItemRenderer"/>
</columns>
</DataGrid>
答案 1 :(得分:0)
Flex DataGrid不能包含不在dataProvider中的项目,因此在不扩展DataGrid的情况下添加包含DataGrid中所有行项目总数的行是不切实际的。
有关创建自定义组件的信息,请查看this documentation。另请查看此screencast series。指向episode 1的直接链接。