2013-01-14 5 views
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> 
+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> 

을하지만 당신은 = "http://Services.com에의 xmlns를 추가하는 경우 myusersResponse 태그가 실패했습니다.

EDIT : ase 네임 스페이스 해결 방법이 필요합니다. 방금 네임 스페이스 솔루션에 대한 Jack Moores 질문에 대답했습니다. My flex code does not parse the soap response properly

관련 문제