使用AS3阵列将数据放入DataGrid中

时间:2014-04-04 09:32:51

标签: arrays actionscript-3 datagrid mxml dataprovider

我有一个简单的对象数组:

public var activityArray:Array = [“a1”,“a2”,“a3”,“a4”];

我如何基本将其放入数据网格列?我已将数据网格设置为如下所示:

                             

 </mx:HBox>
    <components:PortalTabGridCanvas id="marketPlansGridCanv" height="33%" width="98.5%">
        <mx:AdvancedDataGrid id="marketPlansGrid" height="100%" width="100%" dataProvider="activityArray">
            <mx:columns>    
                <mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('Activity Type')}" width="160" dataField="ATTRIB_VALUE" textAlign="center" headerWordWrap="true"/>

                <mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('Activity')}" width="160" dataField="ATTRIB_VALUE" textAlign="center" headerWordWrap="true"/>

1 个答案:

答案 0 :(得分:0)

DataGrid旨在检查Object并从Object的可读属性中提取数据,因为您在String中使用dataProvider s ,没有可读的属性。

要显示ObjectAdvancedDataGridColumn的数据,列dataField必须是Object中可读属性的名称。

您需要至少定义dataProvider以包含Object,如下例所示。

public var activityArray:Array = 
[
    {
        property1:"a1",
        property2:"a1's second property"
    } ,
    {
        property1:"a2",
        property2:"a2's second property"
    } 
//etc, etc, etc...
];

然后定义您的列,如:

<mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('Activity Type')}" width="160" dataField="property1" textAlign="center" headerWordWrap="true"/>
<mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('Activity')}" width="160" dataField="property2" textAlign="center" headerWordWrap="true"/>