我有以下数据:
- 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参数将是您的单元格正在接收的数据.