如何在ActionScript中获取ComboBox的值

时间:2012-05-11 21:09:24

标签: flex actionscript

我想在它的Change事件处理程序中显示ComboBox的值。 labelField是动态分配的,所以当我运行事件处理程序

时我不知道它是什么
cmbArea.labelField = qry.outFields[0];

我希望我可以访问selectedItem的值,如:

   protected function cmbArea_changeHandler(event:IndexChangeEvent):void{ 

       // TODO Auto-generated method stub
       Alert.show(event.target.selectedItem.value);
   }

但它没有用。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果没有看到您的数据提供者代码或错误消息,很难对其进行调试。但是,labelField是动态分配的并不重要。如果数据提供程序中的元素具有名为“value”的属性,那么您将使用的是什么。如果数据提供程序中的唯一属性是您指定为labelField的属性,则应该能够使用以下内容在更改处理程序中访问它:

Alert.show(ComboBox(event.target).selectedItem);

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;

            import spark.events.IndexChangeEvent;

            protected function comboBox_changeHandler(event:IndexChangeEvent):void
            {
                Alert.show(comboBox.selectedItem);
            }
        ]]>
    </fx:Script>

    <s:ComboBox id="comboBox"
                change="comboBox_changeHandler(event)">
        <s:dataProvider>
            <s:ArrayList>
                <fx:String>Item 1</fx:String>
                <fx:String>Item 2</fx:String>
                <fx:String>Item 3</fx:String>
            </s:ArrayList>
        </s:dataProvider>
    </s:ComboBox>

</s:Application>

答案 2 :(得分:0)

我测试了以下一行,似乎有效:

Alert.show(event.target.selectedItem[event.target.labelField]);