-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が動的に割り当てられているかどうかは関係ありません。データプロバイダーの要素に「value」という名前のプロパティがある場合、あなたが持っているものは機能します。データプロバイダーの唯一のプロパティが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 に答える