0

私は何時間もこれに苦労してきました!私は本当に助けが必要です

arraycollection 経由で取り込まれた外部 xml ファイルをツリー コントロールに入力しようとしていますが、xml データをグループ化してツリーに表示する必要があります。

さて、私の外部 xml ファイルは parts.xml と呼ばれ、次のようになります。

<NewDataSet>
    <Parts>
        <PartGroup>51 Series</PartGroup>
        <PartType>20051</PartType>
        <PartNumber>20051-3</PartNumber>
        <PartDesc>Reusable Socket-51 SER</PartDesc>
        <PartImageFile />
    </Parts>
    <Parts>
        <PartGroup>51 Series</PartGroup>
        <PartType>20051</PartType>
        <PartNumber>20051-4</PartNumber>
        <PartDesc>Reusable Socket-51 SER</PartDesc>
        <PartImageFile />
    </Parts>
    <Parts>
        <PartGroup>51 Series</PartGroup>
        <PartType>20151</PartType>
        <PartNumber>20151-12-12</PartNumber>
        <PartDesc>Penis</PartDesc>
        <PartImageFile>20151-vi copy.jpg</PartImageFile>
    </Parts>
    <Parts>
        <PartGroup>90 Series</PartGroup>
        <PartType>090</PartType>
        <PartNumber>090-20B</PartNumber>
        <PartDesc>Replace Ferrule-90 SER</PartDesc>
        <PartImageFile>090 copy.jpg</PartImageFile>
    </Parts>
    <Parts>
        <PartGroup>90 Series</PartGroup>
        <PartType>090</PartType>
        <PartNumber>090-4B</PartNumber>
        <PartDesc>Replace Ferrule-90 SER</PartDesc>
        <PartImageFile>090 copy.jpg</PartImageFile>
    </Parts>
    <Parts>
        <PartGroup>90 Series</PartGroup>
        <PartType>20090</PartType>
        <PartNumber>20090-12</PartNumber>
        <PartDesc>Replacement Socket-FA</PartDesc>
        <PartImageFile>20090-vi copy.jpg</PartImageFile>
    </Parts>
    <Parts>
        <PartGroup>90 Series</PartGroup>
        <PartType>20090</PartType>
        <PartNumber>20090-12C</PartNumber>
        <PartDesc>Replacement Socket-FA, SS</PartDesc>
        <PartImageFile>20090-vi copy.jpg</PartImageFile>
    </Parts>
</NewDataSet>

これは単なるサンプルです (実際の xml の長さは 7591 行です)。

次に使っている

<mx:HTTPService id="getPartsXml" url="assets/db/Parts_DB.xml" result="partsDB=getPFDXml.lastResult.NewDataSet.Parts"/>

XMLをフレックスに取得します。partsDB は、ツリー コントロールにバインドされた配列コレクションです。

私が問題を抱えているのは、他のデータを失うことなく、ツリーに必要な方法でデータを表示させることです。

つまり、上記のxmlから、このように表示するツリーが必要です

+-51 series
|  +->20051
|  |  |->20051-3
|  |  |->20051-4
|  |
|  +->20151
|     |->20151-12-12
|
+-90 Series
   +->090
   |  |->090-20B
   |  |->090-4B
   |
   +->20090
      |->20090-12
      |->20090-12C

さらに、私が意図しているのは、ユーザーが部品の巨大なツリーを持ち、部品番号レベルでノードを選択し、それをデータグリッドにドラッグして、部品の他のすべてのタグが表示されるようにすることです。

私は運がなくても多くのことを試してみました。今でも、配列コレクションをループして、ツリーが必要な方法で表示するためだけに新しい配列を作成した場合、ユーザーがパーツをグリッドにドラッグアンドドロップすると、次のコードが得られると考えています元のarraycollectionでその部品番号を探し、それをデータグリッド用の新しい配列に追加します...ツリー用の新しい配列を作成する方法がまだわかりません!! 個々の部品番号を取得する前に、xml データが partgroup ごとにグループ化され、parttype ごとに再度グループ化されます :(

これが理にかなっていることを願っています

4

1 に答える 1

0

2 つのコンポーネントがあります。最初の (ツリー) は、データを適切に表示していません。

  1. ツリーは階層データを期待します。XML データはフラットです (ただし、配列コレクション内にあります)。GroupingCollection2でグループ化します。
  2. または、AdvancedDataGrid を使用して、このようなツリー コントロールをシミュレートします。

データグリッドに関しては、独自のコレクションで動作する可能性が最も高いですが、最初のコンポーネントのコレクションからオブジェクトが供給されます。

  1. 1 から 2 へのダブルクリック/ドラッグ アンド ドロップにより、2 のコレクションに挿入されます (既に存在するかどうかを確認します)。
  2. おそらく2から削除する方法も含める必要があります。そうしないと、常に入力され、決してクリアされないコンポーネントができます。
于 2012-04-09T11:27:43.200 に答える