2011-03-23 53 views
3

如何在Flex数据网格中创建计算列? 例如:数据网格计算列

<mx:DataGrid dataProvider="{ConsoleDetails}" id="datagrid"> 
    <mx:columns> 
    <mx:DataGridColumn headerText="Absent Hrs" dataField="absentHrs"/> 
    <mx:DataGridColumn headerText=Replaced Hrs" dataField="replacedHrs"/> 
    <mx:DataGridColumn headerText="Difference" dataField="<WHAT TO PUT HERE>"/>     
    </mx:columns> 
</mx:DataGrid> 

如何计算这个数据网格“差额”栏目(这应该是其他两米栏的差),放什么在此列的dataField属性?

感谢

回答

4

我会采取以下两种方法之一:

  1. 创建您在数据网格这样的显示类的新属性:

    公共职能得到差() :Number { return replacedHrs - absentHrs; }

    然后设置差异作为列的数据字段。

  2. 或者,创建一个标签函数,该函数返回两个字段的差异并设置该字段而不是dataField。

+0

那么我不想使用这些方法。我想知道是否有任何由datagrid提供的内置功能来实现这种便利?谢谢。 – Tintin 2011-03-23 17:56:05

+0

是的,labelFunction是内置的功能。你应该使用它。 – sean 2011-03-23 18:21:29

+4

为什么你不想使用这些方法?这是做事的正确方式。 Datagrid不做数据计算,这不是很好。 – 2011-03-23 19:53:36