2011-12-06 36 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