我想在它的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);
}
但它没有用。 任何帮助将不胜感激。
答案 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]);