FlexアプリケーションのDataGridの列にDropDownListsを表示する必要があります。ここで私はやっているものです:フレックス:DropDownListのdataProviderをGridItemRendererに渡すにはどうすればよいですか?
まず、私は、カスタムアイテムレンダラーを作成するアイテムレンダラー機能を持っており、それをDropDownListコントロールのdataProviderのとして使用されるIListのあるプロパティを渡します。
private function rendererFunction(item:Object):ClassFactory {
var itemRenderer:ClassFactory = new ClassFactory(AudActionDropDownIR);
itemRenderer.properties = {AudActionData: AudActionData};
return itemRenderer;
}
これは、カスタムアイテムレンダラークラスのコードである。レンダラ(AudActionData)に渡され
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.IList;
[Bindable]
public var TheData:ArrayCollection = new ArrayCollection();
public var AudActionData:IList;
public function init():void
{
TheData = new ArrayCollection(AudActionData.toArray());
TheData.filterFunction = filterTheData;
TheData.refresh();
}
private function filterTheData(item:Object):Boolean {
return item.AUD_STEP_TYPE_ID == data.AUD_STEP_TYPE_ID;
}
]]>
</fx:Script>
<s:DropDownList id="theList"
labelField="AUD_ACTION_DESCR"
requireSelection="true"
selectedIndex="0"
dataProvider="{TheData}"
width="100%"/>
ザのIListは、ドロップダウンリストのためのdataProviderとして使用される濾過のArrayCollectionに変換されます。
私はこれにいくつか問題があります。
まず、レンダラーの作成時にinit関数を呼び出すにはどうすればよいですか? 2番目に、列のitemRendererFunction = "rendererFunction"を設定すると、アプリは起動せず、白い画面が表示されます。しかし、itemRenderer = "components.AudActionDropDownIR"を設定すると、アプリケーションは起動しますが、もちろんドロップダウンリストにはデータはありません。
アイデア?ありがとう!