AdvancedDataGrid:有条件地更改叶节点的图标

时间:2012-03-14 15:12:07

标签: actionscript-3 flex advanceddatagrid

简介:我有一个对象的平面ArrayCollection,我将其分组为AdvancedDataGrid创建dataProvider。在这个AdvancedDataGrid中,我有不同的分支代表不同类型的任务。我想根据存储在每个对象中的日期字段有条件地更改AdvancedDataGrid中叶节点的图标。

为此,我们假设每个 Task 对象包含 id updatedDate (代表上次更新任务时)。如果任务在过去五天内未更新( updatedDate +5< today),则该叶节点(任务)的图标应为红色,与与AdvancedDatagrid中的叶子图标相反的应该是绿色,例如如下图所示。在这种情况下,任务35在过去5天内没有更新,而13和39有。

enter image description here

问题:如何根据基础对象的updatedDate更改ADG中的叶子图标?我认为我必须扩展AdvancedDataGrid并覆盖一些方法,但是哪个以及如何?实现这一特定任务的任何类型的指导都很受欢迎!

我已经看到了更改网络上的打开和关闭图标的简单方法,但无法有条件地更改开放节点的图标:)

更新:应用@takteek groupIconFunction解决方案后,该解决方案始终返回相同的图标:

enter image description here

问题是我需要更改叶节点的图标,而不是分支。

已解决:使用@ takteek的答案,但使用iconFunction而不是groupIconFunction除外,因为我想更改叶节点的图标,而不是groupIcons:)

1 个答案:

答案 0 :(得分:3)

您的两个选择是:

  1. 为数据网格指定groupIconFunction。这将传递当前项目并返回要使用的图标,或返回null以使用默认值。

  2. 创建AdvancedDataGrid的子类并覆盖makeListData。此函数负责创建传递给渲染器的AdvancedDataGridListData对象。您可以将列表数据上的icondisclosureIcon属性更改为您想要的属性。除非您需要更多控制,否则这可能是不必要的。

  3. 根据AdvancedDataGridGroupItemRenderer创建您自己的项呈示器。