组合框数据提供者

时间:2009-09-28 21:05:36

标签: flex combobox dataprovider cfc

我有以下内容:

 <mx:RemoteObject id="myCFC" destination="ColdFusion" source="components.myCFC"  showBusyCursor="true">
    <mx:method name="getStuff" result="UserHandler(event);"/>
</mx:RemoteObject>

...
<mx:ComboBox id="propertyCode" dataProvider="{qry_stuff}" labelField="name" />

Index.as有:

   [Bindable] public var qry_stuff:ArrayCollection = new ArrayCollection;

 private function UserHandler(event:ResultEvent):void {
   qry_stuff= event.result as ArrayCollection;
 }

public function init():void {
  /* call my remote Object to get my data */
   myCFC.getStuff();
  }

我的问题是组合框显示[对象对象]

我知道cfc没有任何问题,getStuff中有一个名为“name”的字段。为什么它不显示对象的值? 提前致谢。

2 个答案:

答案 0 :(得分:1)

ComboBox类上有一个名为labelField的属性。继续并将其设置为返回的数据上的名称字段。如果这不起作用 - 您需要从CF调试返回的值 - 以确保名称属性实际上也在客户端填充。

此外,您的数据可能是作为数组返回的(不是ArrayCollection) - 在这种情况下,您需要设置:

qryStuff = ArrayCollection( event.result as Array );

注意:您可能还希望通过创建ActionScript值对象来“强类型化”您的响应数据 - 这样它不仅仅是从CF返回的通用“对象”。然后,您可以使用[RemoteClass(alias =“com.sample.MyCFC”)]元数据标记将该值对象映射到服务器端VO。

答案 1 :(得分:0)

在我的cfc中,我必须明确设置数据/标签。