简介:我有一个对象的平面ArrayCollection,我将其分组为AdvancedDataGrid创建dataProvider。在这个AdvancedDataGrid中,我有不同的分支代表不同类型的任务。我想根据存储在每个对象中的日期字段有条件地更改AdvancedDataGrid中叶节点的图标。
为此,我们假设每个 Task 对象包含 id 和 updatedDate (代表上次更新任务时)。如果任务在过去五天内未更新( updatedDate +5< today),则该叶节点(任务)的图标应为红色,与与AdvancedDatagrid中的叶子图标相反的应该是绿色,例如如下图所示。在这种情况下,任务35在过去5天内没有更新,而13和39有。
问题:如何根据基础对象的updatedDate更改ADG中的叶子图标?我认为我必须扩展AdvancedDataGrid并覆盖一些方法,但是哪个以及如何?实现这一特定任务的任何类型的指导都很受欢迎!
我已经看到了更改网络上的打开和关闭图标的简单方法,但无法有条件地更改开放节点的图标:)
更新:应用@takteek groupIconFunction解决方案后,该解决方案始终返回相同的图标:
问题是我需要更改叶节点的图标,而不是分支。
已解决:使用@ takteek的答案,但使用iconFunction而不是groupIconFunction除外,因为我想更改叶节点的图标,而不是groupIcons:)
答案 0 :(得分:3)
您的两个选择是:
为数据网格指定groupIconFunction
。这将传递当前项目并返回要使用的图标,或返回null以使用默认值。
创建AdvancedDataGrid的子类并覆盖makeListData
。此函数负责创建传递给渲染器的AdvancedDataGridListData对象。您可以将列表数据上的icon
和disclosureIcon
属性更改为您想要的属性。除非您需要更多控制,否则这可能是不必要的。
根据AdvancedDataGridGroupItemRenderer
创建您自己的项呈示器。