2011-12-06 16 views
2

最初にデータグリッドに値を設定するArrayCollectionを更新する際に問題が発生しています。私の場合、データ提供者はTrueFalseで構成されています。これらは私のデータベースから来たものです。自分のデータグリッドのdataProviderをArrayCollectionに設定し、DataGridのcheckBoxにフィールドをレンダリングします。表示されると、チェックボックスが正しく選択されます。しかし、チェックボックスにチェックを入れ直してArrayCollectionを見てみると、ArrayCollectionは変更されていないことがわかります。私はまだ古い値を取得します。ArrayCollectionがFlexのItemRenderer(CheckBox)経由で更新されない

誰かが自分のコードで紛失しているものについて教えてもらえますか?以下は私のDataGridのコードです。

<mx:DataGrid id="myDataGrid" dataProvider="myArrayCollection" fontSize="9" enabled="true" x="20" y="20" width="217" height="60"> 
    <mx:columns> 
     <mx:DataGridColumn rendererIsEditor="true" editorDataField="selected" width="20" headerText="MyField" dataField="MY_FIELD"> 
      <mx:itemRenderer> 
       <fx:Component> 
        <mx:HBox horizontalAlign="left"> 
         <s:CheckBox selected="{data.MY_FIELD == 'false' ? false : true}" horizontalCenter="0"/> 
        </mx:HBox> 
       </fx:Component> 
      </mx:itemRenderer> 
     </mx:DataGridColumn> 
    </mx:columns> 
</mx:DataGrid> 

答えて

1

これであなたのチェックボックスを交換してみてください:

<s:CheckBox selected="{data.MY_FIELD == 'false' ? false : true}" change="data.MY_FIELD = !data_MY_FIELD" horizontalCenter="0"/> 

ユーザーがチェックボックスの状態を変更するたびに、この値を反転する必要があります。

+0

MY_FIELDは、FlexでArrayCollectionを取り込むデータベースクエリから来ています。 ArrayCollectionは[Bindable]として設定されます。しかしそれでも動作しませんか? アイデア – yaya

+0

私の改訂版の回答をご覧ください。 – sean

+0

私はまだ質問があります。私の価値観は、私のデータ提供者から「真実」または「偽り」として来ています。しかし、チェックボックスをオンまたはオフにした場合、返される値は、trueのfalseを返す代わりにYESまたはNOです。これは非常に奇妙です。ここで間違っているとアドバイスできますか? ありがとう – yaya

関連する問題