-1

我想在它的 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);
   }

但它没有用。任何帮助将非常感激。

4

3 回答 3

1

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

Alert.show(ComboBox(event.target).selectedItem);
于 2012-05-14T23:53:59.353 回答
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>
于 2012-05-15T01:45:10.163 回答
0

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

Alert.show(event.target.selectedItem[event.target.labelField]);
于 2012-05-16T21:08:36.873 回答