关于datagrid的数据绑定有关问题
关于datagrid的数据绑定问题
将 一个 arrayCollection 作为 datagrid的dataProvider,并进行绑定。
之后 arrayCollection 里面的对象发生属性改变,datagrid上相应的列无法做出相应的变化,除非重新指定dataProvider 或者 执行arrayCollection.refresh()
而arrayCollection 在添加新成员操作后就可以 同步地将自身成员属性的变化 反应在 datagrid上。
原因目前还不清楚,找个空再查查。
将 一个 arrayCollection 作为 datagrid的dataProvider,并进行绑定。
之后 arrayCollection 里面的对象发生属性改变,datagrid上相应的列无法做出相应的变化,除非重新指定dataProvider 或者 执行arrayCollection.refresh()
而arrayCollection 在添加新成员操作后就可以 同步地将自身成员属性的变化 反应在 datagrid上。
原因目前还不清楚,找个空再查查。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()"> <mx:DataGrid x="24" y="122" width="526" height="241" id="dt" editable="true" dataProvider="{dataList}"> <mx:columns> <mx:DataGridColumn headerText="choose" width="30" editable="false" > <mx:itemRenderer> <mx:Component> <mx:CheckBox selected="{data.check}"> </mx:CheckBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn headerText="name" width="150" dataField="memberName" editable="false"/> <mx:DataGridColumn headerText="value" width="150" dataField="relAmt" editable="true" /> </mx:columns> </mx:DataGrid> <mx:Script> <![CDATA[ import mx.binding.utils.BindingUtils; import mx.collections.ArrayCollection; [Bindable] private var dataList:ArrayCollection = new ArrayCollection(); private function init():void{ var dataNode:Object = new Object(); dataNode.check = false; dataNode.memberName = "adasd"; dataNode.relAmt = "121"; dataList.addItem(dataNode); } private function changDataValue():void{ for each (var node:Object in dataList){ node.check = true; node.relAmt = "000"; } // dataList.refresh(); // dt.dataProvider = dataList; } private function addNewData():void{ var dataNode:Object = new Object(); dataNode.check = false; dataNode.memberName = "tt"; dataNode.relAmt = "22"; dataList.addItem(dataNode); } ]]> </mx:Script> <mx:Button x="156" y="77" label="changDataValue" click="changDataValue()"/> <mx:Button x="24" y="77" label="addNewData" click="addNewData()"/> </mx:Application>