Flex绑定列表selectedItem

时间:2012-08-26 12:16:46

标签: actionscript-3 flex actionscript flex4

我是flex的新手,并试图将2个列表选择的数据组合起来,(​​参见下面的代码):

<s:Label x="538" y="130" text="Industry of Interest:"/>
        <s:List id="reIndustry" x="538" y="150" width="165" height="122" dataProvider="{recruitIndustries}" labelField="industry"></s:List>
        <s:Label x="723" y="130" text="Qualifications:"/>
        <s:List id="reQualifications" x="723" y="150" width="165" height="122" selectedItem="reIndustry.selectedItem.qualification" labelField="qualification"></s:List>

我想要完成的是,当您从“reIndustry”中选择数据时,所选项目的更多数据将显示在“reQualifications”列表中。

这是我的数据:

 <s:ArrayList id="recruitIndustries">
        <fx:Object industry="Admin/PA/Secretary" qualification="Other"/>
        <fx:Object industry="Automotive" qualification="Painter"/>
        <fx:Object industry="Building/Construct/Mine"/>
        <fx:Object industry="Engineering"/>
        <fx:Object industry="Finance/Accounting"/>
        <fx:Object industry="FMCG"/>
        <fx:Object industry="General Employment"/>
        <fx:Object industry="Health and Skincare"/>
        <fx:Object industry="Insurance"/>
        <fx:Object industry="International"/>
        <fx:Object industry="IT/Computer"/>
        <fx:Object industry="Legal"/>
        <fx:Object industry="Logistics"/>
        <fx:Object industry="Management"/>
        <fx:Object industry="Manufacturing"/>
        <fx:Object industry="Medical"/>
        <fx:Object industry="Part Time/ Temps"/>
        <fx:Object industry="Professions"/>
        <fx:Object industry="Retail"/>
        <fx:Object industry="Sales and Marketing"/>
        <fx:Object industry="Tourism/Hospitality"/>
    </s:ArrayList>

如果可能,我如何在第二个列表“reQualifications”中添加更多值以供显示。

1 个答案:

答案 0 :(得分:0)

@RIAstar问题是正确的。

您可以通过以下代码执行此操作: -

<fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            import spark.events.IndexChangeEvent;

            [Bindable]
            private var moreDataProvider:ArrayCollection = new ArrayCollection();
            private function itemClickHandler(event:IndexChangeEvent):void
            {
                moreDataProvider.removeAll();
                if(Object(reIndustry.selectedItem).hasOwnProperty('qualification'))
                    moreDataProvider.addItem(reIndustry.selectedItem);
            }
        ]]>
    </fx:Script>
    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:Label x="538" y="130" text="Industry of Interest:"/>
    <s:List id="reIndustry" dataProvider="{recruitIndustries}" x="538" y="150" width="165" height="122" 
            labelField="industry" change="itemClickHandler(event)"/>
    <s:Label x="723" y="130" text="Qualifications:"/>
    <s:List id="reQualifications" dataProvider="{moreDataProvider}" x="723" y="150" width="165" height="122" 
            labelField="qualification"/>