2

Flex アプリケーションを実行すると、SOAP 応答が正常に取得され、ドロップダウン ボックスに値が入力されますが、それらは空です。つまり、マウスをドロップダウン ボックスに合わせると、3 つの空の値があることがわかります。

私のフレックスコード

<fx:Script>

    <![CDATA[
        import mx.events.FlexEvent;

        protected function  
                    dropDownList_creationCompleteHandler(event:FlexEvent):void
        {
            myResults.token = myservice.myUsers();
        }

    ]]> 
</fx:Script>

    <fx:Declarations>

    <myservice:myservice id="myservice"/>

    <s:CallResponder id="myResults"/>

</fx:Declarations>

 <s:FormItem label="Label">
  <s:DropDownList id="dropDownList"
       creationComplete="dropDownList_creationCompleteHandler(event)"
       labelField="name">
       <s:AsyncListView list="{myResults.lastResult}"/>
  </s:DropDownList>
  </s:FormItem>

XMLは

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <myusersResponse xmlns="http://Services.com">
      <myusersReturn>
        <name>Nicole</name>
        <age>50</age>
      </myusersReturn>
      <myusersReturn>
        <name>Jayne</name>
        <age>40</age>
      </myusersReturn>
       <myusersReturn>
        <name>Alex</name>
        <age>33</age>
      </myusersReturn>
    </myusersResponse>
  </soapenv:Body>
</soapenv:Envelope>
4

1 に答える 1

1

xmlns 名前空間を確認します。

あなたの問題をエミュレートするために私が書いた次のコードはうまくいきます:

<?xml version="1.0" encoding="utf-8"?>

    <![CDATA[
        import mx.collections.XMLListCollection;
        import mx.events.FlexEvent;
        import mx.messaging.messages.SOAPMessage;
        [Bindable]
        var _result:*;

        protected function  
            dropDownList_creationCompleteHandler(event:FlexEvent):void
        {
            var xml:XML = <Body>
                            <myusersResponse>
                              <myusersReturn>
                                <name>Nicole</name>
                                <age>50</age>
                              </myusersReturn>
                              <myusersReturn>
                                <name>Jayne</name>
                                <age>40</age>
                              </myusersReturn>
                               <myusersReturn>
                                <name>Alex</name>
                                <age>33</age>
                              </myusersReturn>
                            </myusersResponse>
                          </Body>;

        _result = new XMLListCollection(new XMLList(xml.myusersResponse.myusersReturn));
        }

    ]]> 
</fx:Script>

<fx:Declarations>

</fx:Declarations>

<s:FormItem label="Label">
    <s:DropDownList id="dropDownList"
                    creationComplete="dropDownList_creationCompleteHandler(event)"
                    labelField="name">
        <s:AsyncListView list="{_result}"/>
    </s:DropDownList>
</s:FormItem>

ただし、xmlns="http://Services.com を myusersResponse タグに追加すると失敗します。

編集:名前空間の回避策が必要な場合に備えて、Jack Moores の質問にここで名前空間ソリューションを使用して答えました。私のフレックス コードは SOAP 応答を適切に解析しません。

于 2013-01-14T13:15:36.983 に答える