2013-01-14 2 views
2

Une fois que j'ai exécuté mon application Flex, elle obtient la réponse SOAP et remplit les valeurs dans la liste déroulante mais elle est vide, en d'autres termes, lorsque je passe la souris sur ma liste déroulante je peux vois qu'il a trois valeurs vides.La liste déroulante n'affiche pas ses valeurs

mon code 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 est

<?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

À quoi ressemble la réponse? Si c'est XML et 'name' est un attribut, la valeur de' labelField' devrait être '@ name'. – RIAstar

Répondre

1

Vérifiez xmlns namspace.

le code suivant je l'ai écrit à imiter votre problème fonctionne très bien:

<?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> 

Mais si vous ajoutez xmlns = "http://Services.com à balise myusersResponse échoue

EDIT: In c Comme vous avez besoin de solution de contournement d'espace de noms, je viens de répondre à la question de Jack Moores avec la solution d'espace de noms ici My flex code does not parse the soap response properly

Questions connexes