代码之家  ›  专栏  ›  技术社区  ›  user1540512

弹性绑定列表所选项目

  •  0
  • user1540512  · 技术社区  · 12 年前

    我是flex的新手,正在尝试组合两个列表选择的数据(见下面的代码):

    <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 回复  |  直到 12 年前
        1
  •  0
  •   Mahesh Parate    12 年前

    @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"/>