Flex AdvancedDataGrid иерархический просмотрщик элементов представления

Я отображаю иерархические данные в моем AdvancedDatagrid. Я установил флажок в качестве itemrenderer для столбца, который отображает иерархический. Каждый конечный узел в представлении имеет флажок рядом с ним. Предположим, что узел группы A имеет A1, A2, A3 и т. Д. В качестве дочерних узлов, а группа B имеет B1, B2 и т. Д. В качестве дочерних узлов. Все дочерние узлы, т.е. конечные узлы, будут иметь флажок рядом с ним. Если я выбираю какой-либо из флажков в группе А, автоматически флажки в других группах должны быть отключены, а при снятии флажка они должны быть включены.

Пожалуйста, дайте мне знать, как этого добиться.

1 ответ

Абсолютно лучший способ сделать это - создать иерархическое дерево в вашей модели данных. Поэтому для каждого узла, у которого есть дочерние элементы, если у вас есть выбранное свойство, вы также измените выбранное свойство для этих дочерних элементов. Таким образом, ваш ADG - это просто представление о состоянии данных. Затем вы связываете событие изменения флажка с этим выбранным свойством.

[Изменить, чтобы показать образец дерева]

Так что, как и в XML, ваши структуры данных могут иметь парадигму листьев / узлов дерева. Например (код psuedo):

Дерево "Людей":

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 знает, как с этим работать, но это поле, которое позволяет вам установить его на что-то другое, если ваш 'узел' назван как-то еще.

Таким образом, чтобы расширить это значение, каждый "Персона" должен иметь свойство "выбрано, включено, живо, в зависимости от того", и это свойство должно быть установщиком, который затем изменяет это свойство, также присутствующее в его дочерних элементах. Таким образом, состояние ваших данных всегда сохраняется в вашей модели данных, и ADG просто оказывается текущим представлением, которое вы используете для отображения этого представления.

Другие вопросы по тегам