2010-02-19 60 views
6

我具有以下數據: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確實嵌套的用戶的不顯示屬性對象,但簡單的DataGrid呢。 這裏有什麼問題?

回答

7

您需要使用labelFunction或itemRenderer。這裏是一個的labelFunction

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

這就要求

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

項參數將是你的細胞接收數據的一個例子。

+1

我要補充一點,我真的不知道你的對象模型是什麼樣子,所以你應該讓你的labelFunction,然後把一個斷點上的第一條語句並在調試檢查「項目」這樣你就可以解決正確您正在尋找的財產,無論它在結構中。 – Robusto 2010-02-19 22:23:46