我在AdvancedDatagrid中显示分层数据。我已为列显示了一个复选框作为itemrenderer,该列显示了层次结构。视图中的每个叶节点旁边都有一个复选框。 假设组A节点具有A1,A2,A3等作为子节点,组B具有B1,B2等作为子节点。所有子节点即叶节点旁边都有复选框。如果我自动选中A组下的任何复选框,则应禁用其他组下的复选框,并取消选中复选框以启用。
请告诉我如何实现它。
答案 0 :(得分:0)
执行此操作的绝对最佳方法是在数据模型中创建分层树。因此,对于具有子项的每个节点,如果您具有选定的属性,则还应修改这些子项上的选定属性。这样,ADG仅仅是数据状态的视图。然后,您可以将复选框的更改事件绑定到此选定属性。
[编辑以显示树样本]
与XML类似,您的数据结构可以具有树叶/节点范例 例如(伪代码):
“人物”树:
var gf:Person = new Person();
gf.name = 'Frank';
var gm:Person = new Person();
gm.name = 'Elise';
var c1:Person = new Person();
c1.name = 'Mary';
var c2:Person = new Person();
c2.name = 'Frank Jr';
var c3:Person = new Person();
c3.name = 'Sam';
var couple:PersonGroup = new PersonGroup();
couple.relation = [gm, gf];
couple.children = [c1, c2, c3];
//now you add another 'married PersonGroup to child one, and their children'
因此,由于你有一个'children'属性,HierarchicalData知道如何使用它,但是如果你的'node'被命名为其他东西,它们是一个允许你将它设置为其他东西的字段。
所以要扩展这个'Person'将拥有一个'选中,启用,活着,无论哪个'的属性,并且该属性需要是一个setter,然后修改该属性也存在于它的子节点中。通过这种方式,数据的状态始终保留在数据模型中,ADG恰好是用于显示该表示的当前视图。