0

Я создаю древовидную структуру, используя advanceddatagrid. Датапровердер группирует коллекцию, источником которой является arraycollection. Эта группа группировки группирует поля как указано, и я получаю правильную древовидную структуру.Нажмите на advanceddatagrid, имеющий dataprovider в качестве группы группировки

У меня есть этот тип структуры дерева

Client 
     Fund 
      Account 

Всякий раз, когда пользователь нажимает на любой из этих узлов есть нажмите обработчик, который выглядит следующим образом:

  private function clickhandler(event:Event){ 

      var item:VO=event.currentTarget.selectedItem as VO 
      Alert(item.ID); 
      } 

Где VO является боб класса, поля являются

ID 
    Name 

Когда я нажимаю на узел «Учетная запись», я получаю правильное значение предупреждения (acco rding до функции выше), но когда я нажимаю на фонд или клиент, я не получаю значение в состоянии предупреждения. Он говорит об ошибке как Тип ошибки: # 1009 не могут получить доступ к объекту

Так вот, когда я нажимаю на листовой узел, я получаю значение источника данных, которое связано с этим узлом, но когда я нажимаю на не листовой узел, я не получение значений источника данных подобно (как в приведенной выше функции VO.ID и VO.Name). Как его решить?

Второй вопрос: Также я хочу знать, что на каком уровне пользователь нажал на дерево, которое является уровнем 1 (клиент) или уровнем 2 (фонд) или уровнем 3 (счет).

ответ

0

Попробуйте создать свой собственный AdvancedDataGridGroupItemRenderer и AdvancedDataGridItemRenderer

<mx:AdvancedDataGrid 
itemRenderer="MyAdvancedDataGridItemRenderer" 
groupItemRenderer="MyAdvancedDataGridGroupItemRenderer"> 
</mx:AdvancedDataGrid> 

В классах MyAdvancedDataGridItemRenderer и MyAdvancedDataGridGroupItemRenderer создавать обработчики нажмите в этом обработчики установить точки останова и отладки. Я думаю, это поможет вам понять узлы