关于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中的那一系列的值啊?
|

