public function capturaPermisos():ArrayCollection{
var arrayColl:ArrayCollection = new ArrayCollection();
for(var i:int=0; i < dataProvider.length; i++){
object.idModulo = dataProvider[i].idModulo;
object.consultar = dataProvider[i].consultar;
object.agregar = dataProvider[i].agregar;
object.modificar = dataProvider[i].modificar;
object.eliminar = dataProvider[i].eliminar;
arrayColl[i].addItem(object);
}
return arrayColl;
}
dataProvider来自数据网格,因此是循环。该对象在函数外部全局声明。
for each(var per:Object in adgPermisos.dataProvider)
{
permiso.idModulo = per.idModulo;
permiso.consultar = per.consultar;
permiso.agregar = per.agregar;
permiso.modificar = per.modificar;
permiso.eliminar = per.eliminar;
permisos.addItem(permiso);
}
第二个循环完全相同的错误结果。
它将我的dataprovider的最后一个注册表保存在arraycollection的所有3行中(dataprovider.length为3)
我的dataProvider也是一个arrayCollection,但它与填充我的Datagrid的Arrcooll不同。当我想将数据发送到服务器时,我的数据网格中的复选框添加了不同的值,并且渲染的arrayCollection与填充数据网格时的不同。
我只想填充另一个arrayCollection,将其发送到我的java webservice,就像这样;
答案 0 :(得分:1)
“它将我的dataprovider的最后一个注册表保存在arraycollection的所有3行中”:你可能在循环中引用相同的对象[permiso] 3次。因此,您将此相同对象添加3次,然后再次更改此同一对象3次。 (因此,permisos中的所有3个条目都包含相同的对象permiso,已被更改3次)。请尝试以下代码来解决此问题:
for each(var per:Object in adgPermisos.dataProvider)
{
var newItem : Object = ObjectUtil.clone(permiso);
newItem.idModulo = per.idModulo;
newItem.consultar = per.consultar;
newItem.agregar = per.agregar;
newItem.modificar = per.modificar;
newItem.eliminar = per.eliminar;
permisos.addItem(newItem);
}
for each(var per:Object in adgPermisos.dataProvider)
{
var newItem : Object = ObjectUtil.clone(permiso);
newItem.idModulo = per.idModulo;
newItem.consultar = per.consultar;
newItem.agregar = per.agregar;
newItem.modificar = per.modificar;
newItem.eliminar = per.eliminar;
permisos.addItem(newItem);
}