2011-12-06 58 views
2

我有問題來更新我的ArrayCollection,它最初填充我的數據網格。在我的情況下,數據提供者包含TrueFalse作爲字符串。這些來自我的數據庫。我將datagrid的dataProvider設置爲ArrayCollection,然後在數據網格中的複選框中顯示該字段。顯示時,該複選框被打勾。但是,如果我勾選/取消勾選複選框並嘗試查看ArrayCollection,我注意到ArrayCollection保持不變。我仍然得到舊的價值觀。ArrayCollection未更新通過Flex中的ItemRenderer(CheckBox)

有人可以指導我通過我的代碼中缺少的東西嗎?以下是我的數據網格的代碼。

<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

嘗試用這個替換您的CheckBox:

<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

我還有一個問題。我的價值觀來自我的數據提供商的「真實」或「虛假」。但是,如果我選中或取消選中複選框,它將返回的值是YES或NO,而不是返回false本身。這很奇怪。你能建議在這裏出錯嗎? 謝謝 – yaya