1

是否可以根据该行的数据更改 AdvancedDataGrid 中树列的文件夹图标?

我有一个 AdvancedDataGrid,它以树格式显示 HierarchicalData(来自 XML 数据)。我想根据每行的 XML 数据为文件夹图标显示不同的图标。更改文件夹图标的唯一明显方法是设置我的 AdvancedDataGrid 的 folderOpenIcon 和 folderClosedIcon 属性,但这会为所有行设置文件夹图标。我尝试使用 AdvancedDataGrid 函数“setItemIcon”,但这似乎不起作用。

我在此 AdvancedDataGrid 中有一些 ColumnRenderer,它们根据行数据在其他列中显示不同的图标,但我还没有找到一种方法来使用主树列执行此操作。我猜它类似于使用 ColumnRenderer,但可能使用类似 GroupItemRenderer 的东西。

4

1 回答 1

2

这应该可以通过groupIconFunction这样的:

<mx:AdvancedDataGrid groupIconFunction="getGroupIcon">
   <mx:columns>
       <mx:AdvancedDataGridColumn headerText="Name" dataField="name"/>
   </mx:columns>
</mx:AdvancedDataGrid>

<fx:Script>

[Embed(source='/assets/company.png')]
private static const COMPANY_ICON: Class;

[Embed(source='/assets/customer.png')]
private static const CUSTOMER_ICON: Class;

private function getGroupIcon(item:Object,depth:int):Class
{
    if (item is Company)
        return COMPANY_ICON;
    if (item is Customer)
        return CUSTOMER_ICON;
    // null = default icon
    return null;
}

</fx:Script>

Adobe 的 Flex 在线参考中还有一个示例,它演示了如何使用 groupIconFunction 和 groupLabelFunction 属性

于 2013-10-23T12:43:26.517 回答