2012-05-11 5 views
-1

Я хочу показать значение ComboBox в его обработчике событий изменений. LabelField назначается динамически, так что я не знаю, что это такое, когда я бегу обработчик событийКак получить значение ComboBox в ActionScript

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

Вы используете Flex и Spark? –

+0

net.uk.sweet, Да. ComboBox определяется как: \t \t \t '' – Fred

+0

Может кто-нибудь объяснить, почему у меня есть отрицательный голос по этому вопросу. Я сделал что-то не так?! – Fred

ответ

0

Я тестировал следующую строку и, кажется, это работы:

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

Эй, Фред, ты знаешь, что можешь принять свой собственный ответ? Точки, которые вы получите, будут больше, чем прикрывать это голосование :) –

+0

Привет, Ян, спасибо за ваш совет. Я думал, что кто-то другой может найти это полезным и принять его. – Fred

1

Трудно отладить это, не видя кода поставщика данных или сообщения об ошибке. Однако не имеет значения, что labelField присваивается динамически. То, что у вас есть, будет работать, если элементы вашего поставщика данных имеют свойство с именем «значение». Если свойство только в поставщике данных, который вы назначить в качестве labelField, вы должны быть в состоянии получить доступ к нему в обработчике изменений со следующим:

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

Поставщик данных представляет собой массив ArrayCollection, который получил данные из веб-службы ГИС. Он имеет несколько свойств, и когда я нахожусь в процедуре события, я не знаю, какое свойство присваивается как labelField. Извините, если код недостаточно ясен. Я использую образец кода для извлечения данных из веб-службы, и я не понимаю его хорошо. Спасибо за ваш ответ. Это привело меня к правильному ответу. – Fred

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> 
Смежные вопросы