通过Web服务返回从XML填充Flex组合框

时间:2012-08-20 07:51:41

标签: xml flex flex3

我正在尝试从通过Web服务返回的XML填充Flex 3中的组合框。

以下是代码:

     <mx:WebService id="Services" 
    wsdl="http://10.10.15.4///WebService.asmx?wsdl"
    useProxy="false">
    <mx:operation   name="getAccounts"
                    showBusyCursor="true"
                    fault="showErrorDialog(event)">                         
    </mx:operation>
    </mx:WebService>

组合框的代码:

<mx:ComboBox id="accountPicker" labelField="Account" dataProvider="{Services.getAccounts.lastResult.Root.Node.Account}"/>

返回的我的XML看起来像这样:

<Root>
    <Node>
       <Account>Account1</Account>
    </Node>
   <Node>
       <Account>Account2</Account>
    </Node>
</Root>

我在这里做错了什么?目前组合框是空白的。如果我从dataProvider中删除.Root.Node.Account,则返回[Object Object]。

由于

1 个答案:

答案 0 :(得分:1)

  1. 在处理e4x时,root是隐式的,所以你只想要xmlObject.Node.Account
  2. Node.Account为您提供帐户节点的XMLList。这些节点没有“帐户”属性,因此labelField无效。如果你忽略labelField,组合框将在每个元素上调用toString(),这自动是内部文本。
  3. 所以你想要的是:

    <mx:ComboBox id="accountPicker" dataProvider="{Services.getAccounts.lastResult.Node.Account}" />