,我在我的項目之一使用DataGrid
,使用自定義ItemRenderer
該列的一個代表一個布爾值作爲CheckBox
如何處理在自定義GridItemRenderer
<s:DataGrid id="clients" resizableColumns="false">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="fullName" headerText="Client name" />
<s:GridColumn dataField="active" headerText="Active?" width="90"
itemRenderer="CheckBoxGridItemRenderer"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
這裏是的CheckBoxGridItemRenderer
代碼:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
override public function prepare(hasBeenRecycled:Boolean):void {
checkBox.selected = Boolean(data[column.dataField]);
}
]]>
</fx:Script>
<s:CheckBox id="checkBox" horizontalCenter="0" />
</s:GridItemRenderer>
現在,這裏是我的問題:什麼是處理從我宣佈DataGrid
類數據的變化的最佳方式?
我試圖將數據值從我的自定義項目渲染類內變化:
private function valueChange():void
{
data.active = checkBox.selected;
}
[...]
<s:CheckBox id="checkBox" change="valueChange()" />
然後聽CollectionEvent.COLLECTION_CHANGE
事件在DataGrid的數據提供程序,但我從來沒有處理任何變化。任何想法或建議?
那麼,你想更改DataGrid中的數據嗎?嘗試在列中添加'rendererIsEditable =「true」'。 – dvdgsng 2013-03-18 03:22:48
這不會改變任何東西。僅供參考,我已經可以在沒有它的情況下更改「CheckBox」值。但我想處理在我的ItemRenderer之外的相關事件,即在DataGrid實例化的類中 – duTr 2013-03-18 21:17:08