2011-01-22 10 views
0

FlexのDropDownListのデータプロバイダとして使用するIListを動的に作成しています。IListをdataProviderとして使用するDropDownListの空のエントリ

コードはIListを正しく作成しています。私はその内部のデータにアクセスできます。

ただし、DropDownListのデータプロバイダを設定すると、リスト内の各項目の空白のエントリのみが表示されます。

IListに30個のアイテムがある場合は、ドロップダウンに30個の空白のスポットが表示されます。

ここに私が使用しているコードがあります。

categoryXML = new XML(loader.data); 

for each(var category in categoryXML.category) { 
    categoryArr.addItem(category.name); 
} 

categoryList = categoryArr; 
cats2.dataProvider = categoryList; 

何が原因なのですか?私はGoogleを介して何かを見つけることができない。

+1

どのようにlabelFieldプロパティ、のlabelFunctionを使用して、あなたのデータを表示するか、カスタムのitemRenderer? –

+0

あなたは何を意味するのか正確にはわかりません。私はdataProviderを設定し、ドロップダウン内のIList内に何が表示されると思った。私は他の何かを使う必要があると思いますか? –

+0

さて、labelFieldに関する情報を検索した後、私はドロップダウンリストに情報が正しくあると推測しています。エントリにはラベルが付けられていないので、空白のフィールドが作成されます。私はラベルを追加する方法を探します。 –

答えて

0

実際のデータを見ずには分かりません。しかし、あなたは文字列の配列を作成しているようです。 Sparkリストが単純な値をどのように扱うのか分かりません。

あなたはこのような何か試してみてください:

for each(var category in categoryXML.category) { 
    var newObject : Object = new Object(); 
    newObject.label = category.name; 
    categoryArr.addItem(newObject.); 
} 

をcategory.nameは、複雑なXMLオブジェクトである場合は、あなたはおそらくのlabelFunctionを作成する必要があります。このような何か:

public myLabelFunction(item:Object):String{ 
    return item.valueToDisplay; 
} 

そして、それはこのようなリストに設定します。

myList.labelFunction = myLabelFunction; 
+0

最初の解決策は完全に機能しました。どうもありがとうございます :) –

関連する問題