2009-07-11 4 views
0

PHPから配列として返される型を取得しています。私のデータグリッドに値を設定すると、値が来ていない...私はなぜこのように起こっているのか解釈していない。Flex Datagridの配列を取り込む

var appSes:Array = event.result as Array 
dg.dataProvider = appSes; 

私は値を取得していますが、PHPからはこれ以外に何かがあります。

<local:CheckBoxDataGrid id="dg" 
        allowMultipleSelection="true" x="118" y="142" width="507"> 
     <local:columns> 
      <mx:DataGridColumn dataField="firstName" headerText=" " width="20" sortable="false" itemRenderer="CheckBoxRenderer" > 
      </mx:DataGridColumn> 
      <mx:DataGridColumn dataField="firstName" headerText="First Name" /> 
      <mx:DataGridColumn dataField="lastName" headerText="Last Name" /> 
     </local:columns> 
    </local:CheckBoxDataGrid> 

答えて

0

配列ではなくArrayCollectionを使用します。一般的には、リスト、グリッドなどのdataProvidersにバインドするときは常にArrayCollectionを使用する必要があります。その理由は、プロパティ変更が認識され、オブジェクトが追加、削除、またはが変更されたときにリストに通知するからです。配列はこの動作を提供しません。

この

var appSes:ArrayCollection = new ArrayCollection(event.result); 
dg.dataProvider = appSes; 

にあなたのVARを変更

私はモデルオブジェクトに自分の意見を結合する傾向ではなく、あなたがしているように明示的に設定します。 ArrayCollectionの新しいインスタンス(サーバーからデータをリフレッシュするときなど)を作成すると、自分の作業に手を加えなくても正しく更新されるという利点があります。

したがって、私はどうなる:

<local:CheckBoxDataGrid id="dg" dataProvider="{appSes}" .... 
関連する問題