2012-01-20 2 views
0

노드가 열려있는 advanceddatagrid의 각 행에 대한 데이터를 가져와야합니다. 예를 들어AdvancedDatagrid 열린 잎/나무의 각 행을 반복하십시오.

, 내 ADG는 다음과 같습니다

+ Science 
- Math 
    - Passed 
    John Doe | A+ | Section C 
    Amy Rourke | B- | Section B 
    - Failed 
    Jane Doe | F | Section D 
    Mike Cones | F | Section D 
- English 
    + Passed 
    + Failed 
- History 
    + Passed 
    - Failed 
    Lori Pea | F | Section C 
나는 열린 노드 얻기 위해 다음 코드를 사용하여 시도

: 객체를 검사 할

var o:Object = new Object(); 
o = IHierarchicalCollectionView(myADG.dataProvider).openNodes; 

을하지만, 다음 코드를 수행 :

Alert.show(ObjectUtil.toString(o), 'object inpsection'); 

나를 제공합니다 :

어떤 제안이 매우 극명하게 될 것이다

Math | Passed | John Doe | A+ | Section C 
Math | Passed | Amy Rourke | B- | Section B 
Math | Failed | Jane Doe | F | Section D 
Math | Failed | Mike Cones | F | Section D 
History | Failed | Lori Pea | F | Section C 

:

(Object)#0 
    Math (2) 
    children = (mx.collections::ArrayCollection)#2 
     filterFunction = (null) 
     length = 2 
     list = (mx.collections::ArrayList)#3 
     length = 2 
     source = (Array)#4 
      [0] (Object)#5 
      children = (mx.collections::ArrayCollection)#6 
       filterFunction = (null) 
       length = 2 
       list = (mx.collections::ArrayList)#7 
       length = 2 
       source = (Array)#8 
        [0] <Table> 
    <Name>John Doe</Name> 
    <Grade>A+</Grade> 
    <Section>Section C</Section> 
</Table> 
        [1] <Table> 
    <Name>Amy Rourke</Name> 
    <Grade>B-</Grade> 
    <Section>Section B</Section> 
.... 
... 
.. 

는 기본적으로, 난 그냥 저를 줄 것이다 객체 또는 배열 또는 XMLList를 작성해야합니다. 감사합니다

답변

0

openNodes 객체의 속성을 반복 할 수 있어야하며 각 객체는 컬렉션을 잡고 새 배열에 값을 연결 한 다음 필요에 따라 다른 컬렉션 유형의 소스로 사용할 수 있습니다. 이런 식으로 뭔가 :이와

var newArray:Array = []; 
for(var property:String in o) 
{ 
    newArray = newArray.concat(o[property][0].source); //Passed, property is subject as in Math 
    newArray = newArray.concat(o[property][1].source); //Failed property is subject as in Math 
} 

유일한 문제는 당신이 그렇지 않으면 위의 작동합니다, 또한 수학을 유지하고 객체에 통과 또는 실패 위해 노력하고있다. 이 다른 부분을 작동 시키려면 위의 각 구문을 openNodes 객체의 소스를 반복하는 자체 루프로 분해해야하고 올바른 값을 주제와 패스가있는 새 값 객체에 넣어야한다고 생각합니다. 또는 그것에 실패 세트. 그런 다음이 값을 저장할 수도 있습니다. 또한 각 패러미터에서 두 개의 배열을 가지며 첫 번째 패싱이 실패 할 원본 데이터 구조에서 항상 패시브가 실패한 것으로 가정합니다.