6

次のデータがあります。

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 は表示することです。ここで何が問題なのですか?

4

2 に答える 2

7

labelFunction または itemRenderer を使用する必要があります。これは labelFunction の例です

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

呼び出す

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

item 引数は、セルが受け取っているデータになります。

于 2010-02-19T22:20:38.347 に答える
1

複雑なパスをサポートするために DataGrid にパッチが適用されましたが、AdvancedDataGrid はそうではなかったと思います。詳細: http://bugs.adobe.com/jira/browse/SDK-9801

代わりに labelFunction を使用できます。

于 2010-02-19T22:19:45.603 に答える