1

私は次のものを持っています:

 <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();
  }

私の問題は、コンボボックスに[object Object]が表示されることです

私は、cfc に問題がなく、getStuff に「name」というフィールドがあることを知っています。オブジェクトの値が表示されないのはなぜですか? 前もって感謝します。

4

2 に答える 2

1

labelField と呼ばれる ComboBox クラスのプロパティがあります。先に進み、返されるデータの名前フィールドにそれを設定します。それでもうまくいかない場合は、CF から返された値をデバッグして、name プロパティが実際にクライアント側でも設定されていることを確認する必要があります。

さらに、データはおそらく (ArrayCollection ではなく) 配列として返されます。その場合は、次のように設定する必要があります。

qryStuff = ArrayCollection( event.result as Array );

注: また、ActionScript 値オブジェクトを作成して応答データを「厳密に型指定」する必要がある場合もあります。これにより、CF から返される単なる一般的な「オブジェクト」ではなくなります。[RemoteClass(alias="com.sample.MyCFC")] メタデータ タグを使用して、その値オブジェクトをサーバー側の VO にマップできます。

于 2009-09-29T20:55:14.013 に答える
0

私のcfcでは、データ/ラベルを明示的に設定する必要がありました。

于 2009-10-12T20:39:44.220 に答える