0

我是 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”中。

4

1 回答 1

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"/>
于 2012-08-27T05:32:24.257 回答