Actionscript 3 在Flex的AdvancedDataGrid中设置树列的文件夹图标(基于行数据)
是否可以基于该行的数据更改AdvancedDataGrid中树列的文件夹图标 我有一个AdvancedDataGrid,它以树格式显示HierarchicalData(来自XML数据)。我想根据每行的XML数据为文件夹图标显示不同的图标。更改文件夹图标的唯一明显方法是设置我的AdvancedDataGrid的folderOpenIcon和folderClosedIcon属性,但这会为所有行设置文件夹图标。我尝试使用AdvancedDataGrid函数“setItemIcon”,但似乎不起作用Actionscript 3 在Flex的AdvancedDataGrid中设置树列的文件夹图标(基于行数据),actionscript-3,apache-flex,advanceddatagrid,Actionscript 3,Apache Flex,Advanceddatagrid,是否可以基于该行的数据更改AdvancedDataGrid中树列的文件夹图标 我有一个AdvancedDataGrid,它以树格式显示HierarchicalData(来自XML数据)。我想根据每行的XML数据为文件夹图标显示不同的图标。更改文件夹图标的唯一明显方法是设置我的AdvancedDataGrid的folderOpenIcon和folderClosedIcon属性,但这会为所有行设置文件夹图标。我尝试使用AdvancedDataGrid函数“setItemIcon”,但似乎不起作用 我
我在这个AdvancedDataGrid中有一些ColumnRenders,它们根据行数据在其他列中显示不同的图标,但是我还没有找到一种方法来处理主树列。我猜这与使用ColumnRenderer类似,但也可能使用GroupItemRenderer之类的东西。这应该可以通过如下方式实现:
<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>
[Embed(source='/assets/company.png')]
私有静态const COMPANY_图标:Class;
[Embed(source='/assets/customer.png')]
私有静态常量客户图标:类;
私有函数getGroupIcon(项:对象,深度:int):类
{
如果(项目为公司)
返回公司图标;
如果(项目为客户)
返回客户图标;
//null=默认图标
返回null;
}
Adobe的Flex online reference中也有一个例子,演示了如何使用它。在您发布此消息的同时,我自己发现了groupIconFunction。groupIconFunction正是我所需要的。谢谢