Estoy desarrollando una aplicación con flex 3, en la que tengo dos datagrids, en los que hago un drag & drop, para pasar los datos de uno al otro. El problema que tengo ahora, es que si hago un drag & drop de un elemento, y el valor una columna "x" se repite en otros datos de mi datagrid, droppear TODOS los elementos que compartan el mismo valor de la columna "x" al segundo datagrid. Hay alguna forma directa de hacerlo? Se puede agrupar los datos del datagrid por la columna deseada?
Por el momento he hecho esto:
Código ActionScript :
public function verificarMismasOP():void{
var a: ArrayCollection = new ArrayCollection(); // ACA SE GUARDAN LOS ELEMENTOS QUE SON IGUALES DENTRO DEL PRIMER GRID.
for (var i:int = 0; i< this.dgOP.selectedItems.length;i++){
for (var j:int = 0; j<this.dgOP.dataProvider.length;j++){
if (this.dgOP.dataProvider.getItemAt(j).nroOrdenPago == this.dgOP.selectedItems[i].nroOrdenPago){
a.addItem(this.dgOP.dataProvider.getItemAt(j)); // ACA LOS GUARDO EN EL ARRAY COLLECTION. }
}
}
//ELIMINO LOS ELEMENTOS ARRASTRADOS DEL SEGUNDO GRID
for (var n:int = 0; n< this.dgOP.selectedItems.length;n++){
for (var l:int = 0; l<this.dgOPARevisar.dataProvider.length;l++){
if (this.dgOPARevisar.dataProvider.getItemAt(l).nroOrdenPago == this.dgOP.selectedItems[n].nroOrdenPago){
this.dgOPARevisar.dataProvider.removeItemAt(l); //ELIMINO EL/LOS ELEMENTOS QUE SE AGREGAN POR HACER EL DRAG & DROP, PARA QUE NO LOS AGREGUE DOS VECES :p
}
}
}
//LOS AGREGO AL SEGUNDO GRID A LOS AGREGADOS AL ARRAY COLLECTION "a"
for each (var item: Object in a){
this.dgOPARevisar.dataProvider.addItem(item);
}
// ACA QUIERO BORRAR LOS ELEMENTOS DEL PRIMER DATAGRID, DONDE ME TIRA EL ERROR
for (var z:int = 0; z< this.dgOP.selectedItems.length;z++){
for (var w:int = 0; w<this.dgOP.dataProvider.length;w++){
if (this.dgOP.dataProvider.getItemAt(w).nroOrdenPago == this.dgOP.selectedItems[z].nroOrdenPago){
this.dgOP.dataProvider.removeItemAt(z);
}
}
}
}
Con esto, el problema que tengo es que me tira un error al querer eliminar del primer datagrid, el que tiene todos los datos, y me borra sólo uno, y no todos
El método se llama en el evendo dragComplete del primer datagrid.
El primer datagrid es dgOP y el segundo es dgOPARevisar , y la columna que necesito qeu sean igual es nroOrdenPago.
Alguna solución? Alguna Ayuda?? Desde ya, muchas gracias!
