0

私の質問は、このMulti Dim配列コレクションを取得して、レベル2をドロップダウンリストに適用するにはどうすればよいかということです。

 var someArray:ArrayCollection = new ArrayCollection( [
        { label: "Level 1 p1", data: 
         { label: "Level 2", data: "some stuff" }
        },
        { label: "Level 1 p2", data: 
         { label: "Level 2", data: "some stuff" }
        }
    ] );

<s:DropDownList includeIn="items" id="classSelect" dataProvider="{someArray[0].data}" selectedIndex="0" labelField="label" x="405" y="150"/>

someArray [0] .data-たとえば、エントリ1とデータレベルの内容を指します。データレベルは再びarrayListになりますが、ポインタがどのように正しく機能していないかをここで理解していますか?

4

1 に答える 1

2

どういう意味かわかりません

ドロップダウンリストにレベル2を適用します

ドロップダウンにレベル2のテキストを表示する場合は、オブジェクトにドリルダウンしてテキストを返すitemRendererまたはlabelFunctionを使用して表示できます。概念的には次のようなものです。

protected function getLevel2(item:Object):String{
  return item.data.label;
}

<s:DropDownList dataProvider="{someArray}" labelFunction="getLevel2" />

dataProviderにネストされたオブジェクトのみを含める場合は、someArray値をループして、レベル2オブジェクトのみを含む新しいコレクションを作成する必要があります。概念的には次のようになります。

var newDataProvider :ArrayCollection = new AryCollection();
for each (item in someArray){
 newDataProvider.addItem(item.data);
}

また、明確にするために、「データ」はIListインターフェイスを実装する汎用オブジェクトであるため、dataProviderの現在の設定でエラーが発生する可能性が高いことも追加します。

<s:DropDownList dataProvider="{someArray[0].data}" />

それが機能した場合は、単一のアイテムのみを含むdataProviderになります。

于 2012-06-26T21:26:49.093 に答える