0

我正在尝试从通过 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]。

谢谢

4

1 回答 1

1
  1. 在处理 e4x 时,根是隐式的,所以你只想要xmlObject.Node.Account
  2. Node.Account给你一个账户节点的 XMLList。这些节点没有“帐户”属性,因此labelField无法正常工作。如果您只是省略labelField,组合框将在每个元素上调用 toString() ,这将自动成为内部文本。

所以你想要的是:

<mx:ComboBox id="accountPicker" dataProvider="{Services.getAccounts.lastResult.Node.Account}" />
于 2012-08-20T08:18:55.920 回答