2013-01-14 283 views
2

運行我的Flex應用程序後,它成功獲取SOAP響應並在下拉框中填充值,但它們爲空,換句話說,當我將鼠標懸停在下拉框上時,我可以看到它有三個空值。下拉列表不顯示它的值

我的Flex代碼

<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> 
+2

響應是什麼樣的?如果它是XML並且'name'是一個屬性,'labelField'的值應該是'@ name'。 – RIAstar

回答

1

檢查的xmlns namspace。

下面的代碼我寫模仿你的問題能正常工作:

<?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標記失敗

編輯: 在c因爲你需要命名空間解決方法,我只是在這裏用名字空間解決方案回答Jack Moores問題My flex code does not parse the soap response properly