AdvancedDataGrid不显示对象属性

时间:2010-02-19 19:14:01

标签: flex flex3 advanceddatagrid

我有以下数据:

var data: ArrayCollection = new ArrayCollection(
            [
                { name: "ProductA", user: {login: "loginA", email: "emailA"} },
                { name: "ProductB", user: {login: "loginB", email: "emailB"} },
                { name: "ProductC", user: {login: "loginC", email: "emailC"} }
            ]
        );

此数组是我的AdvancedDataGrid的数据提供者:

<mx:AdvancedDataGrid dataProvider="{data}">
    <mx:columns>
        <mx:AdvancedDataGridColumn headerText="Product" width="55" dataField="name" /> 
        <mx:AdvancedDataGridColumn headerText="User" dataField="user.login" />
        <mx:AdvancedDataGridColumn headerText="Email" dataField="user.email" />
    </mx:columns>
</mx:AdvancedDataGrid>

问题是 - AdvancedDataGrid不显示嵌套的User对象的属性,但是简单的DataGrid会显示。 这有什么不对?

2 个答案:

答案 0 :(得分:7)

您需要使用labelFunction或itemRenderer。以下是labelFunction

的示例
<mx:AdvancedDataGridColumn headerText="User" labelFunction="getUserLogin" />

调用

private function getUserLogin(item:Object, column:AdvancedDataGridColumn) {
  return item.user.login;
}

item参数将是您的单元格正在接收的数据。

答案 1 :(得分:1)

DataGrid被修补以支持复杂路径,但我不认为AdvancedDataGrid是。更多细节: http://bugs.adobe.com/jira/browse/SDK-9801

您可以改用labelFunction。