[flex] 关于CollectionEvent中的items的属性调用
yexin218
2008-06-10
private function getJsonData(event:ResultEvent):void{ var rawArray:Array; var arraySize:int; var rawData:String = event.result as String; rawArray = JSON.decode(rawData) as Array; dataArray = new ArrayCollection(rawArray); arraySize = dataArray.length; lblStatus.text="There are "+arraySize+"messages"; dataArray.addEventListener(CollectionEvent.COLLECTION_CHANGE,dataChanged); } 这里是从java后台用remoteObject返回的的json格式的数组作为datagrid中的data provider.同时我要实现在datagrid可以让用户修改和删除数据,然后保存到数据库。可是在函数dataChanged()遇到了一些问题: private function dataChanged(event:CollectionEvent):void{ var item:Object; var updatedObj:Object; var i:int; if(event.kind == CollectionEventKind.UPDATE){ for(i=0;i < event.items.length;i++){ item = event.items; lblStatus.text=item.toString(); updatedObj = new Object; updatedObj.operation = "update" //updatedObj.id = item.source.id; //updatedObj.property = item.property; //updatedObj.value = item.source[item.property]; dataToUpdate.push(updatedObj); } }else if(event.kind == CollectionEventKind.REMOVE){ for(i=0;i< event.items.length;i++){ item = event.items; updatedObj = new Object; updatedObj.operation = "delete"; //updatedObj.id = item.id; dataToUpdate.push(updatedObj); } } if(chkAutoUpdate.selected){ sendDataAction(); } } 方法中有一个就是从事件CollectionEvent返回的items.我不知道例子中(我参考别人的例子)用的flex版本是多少,反正在flex3中没有出现 //updatedObj.id = item.source.id; //updatedObj.property = item.property; //updatedObj.value = item.source[item.property]; 这些右边的item.property,item.source.id属性。那我怎么样才能在datagrid中拿到用户所编辑的行的数据,比如那一行的用户id,name,以及用户更改在那一列的属性(property)呢?然后在吧更新的数据保存在updatedObject传给后台做更新数据库处理呢? 谢谢大家帮忙! Liceven |
|
yexin218
2008-06-10
anyone who could do me a favor. thanks very much
|
|
sprite
2008-06-13
直接用DataGrid的selectedItem不就知道当前编辑的是哪一行(数据)了吗?
|
|
yexin218
2008-06-16
那如果的到了index数值,怎么对应在ArrayCollection中的那一系列的值啊?
|
|
w121078979
2010-11-16
保存整个对象不行么?
|
|
smithfox
2010-12-30
请看我的blog文章: http://www.smithfox.com/?e=38
CollectionEventKind.UPDATE时, items成员是PropertyChangeEventKind对象 |