6 Stimmen

AdvancedDataGrid zeigt Objekteigenschaften nicht an

Ich habe folgende Daten:

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"} }
            ]
        );

Dieses Array ist ein Datenanbieter für mein 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>

Das Problem ist, dass das AdvancedDataGrid die Eigenschaften des verschachtelten User-Objekts nicht anzeigt, das einfache DataGrid aber schon. Was ist hier falsch?

7voto

Robusto Punkte 30472

Sie müssen eine labelFunction oder einen itemRenderer verwenden. Hier ist ein Beispiel für eine labelFunction

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

die aufruft

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

Das Argument item sind die Daten, die Ihre Zelle empfängt.

1voto

James Ward Punkte 29264

DataGrid wurde gepatcht, um komplexe Pfade zu unterstützen, aber ich glaube nicht, dass AdvancedDataGrid gepatcht wurde. Mehr Details: http://bugs.adobe.com/jira/browse/SDK-9801

Sie können stattdessen eine labelFunction verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X