2012-01-20 5 views
0

ノードが開いているアドバンストデータグリッド内の各行のデータを取得する必要があります。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オブジェクトのソースを反復し、正しい値をあなたが作成した新しいValue Objectに入れ子にする独自のループに分割する必要があると思いますまたはそれに失敗することがあります。次に、これらの値も保存することができます。また、パスの失敗は、各データ構造では常に2つの配列を持ち、最初のパスが失敗するというオリジナルのデータ構造で構成されていると仮定しています。

関連する問題