【问题标题】:Populate comboBox in flex 4 using remote Object使用远程对象在 flex 4 中填充组合框
【发布时间】:2011-03-08 01:27:33
【问题描述】:

我返回了一个远程对象,我正在尝试将其填充到组合框中。

<s:RemoteObject id="ro" result="result(event)" destination="echoServiceDestination">

private var statesData:ArrayCollection;

private function result(e:ResultEvent):void{
   statesData = e.result as  ArrayCollection;

}

如何将此集合转换为 {label:"Red", data:"#FF0000"} 之类的内容,以便填充到组合框

远程对象是派对,我似乎无法将其投射如下

                  var party:Party = new Party;

            for(var i:int = 0 ; i < statesData.length; i++)
            {
                party = statesData.getItemAt(i);    

            }

感谢您的帮助。

【问题讨论】:

  • 您返回的数据格式是什么?您的代码示例不包含任何用于转换对象的代码。

标签: apache-flex


【解决方案1】:

您需要实现一个标签功能。将返回的数据直接设置为组合框的数据提供者:

<mx:ComboBox id="comboBox"

            dataProvider="{statesData}"
            labelFunction="labelFunc" />

这将是你的标签函数:

        private function labelFunc(item:Object):String {
            return item.label; // Or whatever parameter you want to display
        }
    ]]>
</mx:Script>

【讨论】:

  • 感谢您的回复。如果我使用这种方法,我如何传递要提交到后端的 id/data。现在它只显示标签。
  • Labelfuntion 仅用于显示目的。如果您从组合框中获取选定的值,您将拥有整个对象,而不仅仅是标签(或您选择显示的任何字段)。
  • 嗨,我设法通过使用组合框上的更改事件并投射到对象来获取 id。 protected function primaryParty_changeHandler(event:ListEvent):void { var tempParty:Party = primaryParty.selectedItem 作为派对; }
  • 另一种选择是使用 labelField 属性而不是 labelFunction 属性。可以直接指定字段。
猜你喜欢
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 2016-05-21
  • 2021-06-18
相关资源
最近更新 更多