AdvancedDataGrid не отображает свойства объекта - PullRequest
6 голосов
/ 19 февраля 2010

У меня есть следующие данные:

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 ]

7 голосов
/ 20 февраля 2010

Вам нужно использовать labelFunction или itemRenderer.Вот пример labelFunction

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

, которая вызывает

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

Аргументом item будут данные, которые получает ваша ячейка.

1 голос
/ 20 февраля 2010

DataGrid был исправлен для поддержки сложных путей, но я не думаю, что AdvancedDataGrid был.Подробнее: http://bugs.adobe.com/jira/browse/SDK-9801

Вы можете использовать labelFunction вместо.

...