我有以下数据:
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会显示.
这有什么不对?
解决方法
您需要使用labelFunction或itemRenderer.这是labelFunction的一个例子
<mx:AdvancedDataGridColumn headerText="User" labelFunction="getUserLogin" />
哪个叫
private function getUserLogin(item:Object,column:AdvancedDataGridColumn) { return item.user.login; }
item参数将是您的单元格正在接收的数据.