Estoy resolviendo un problema que tengo al usar drag&drop,..
Resulta que cuando arrastro los elementos y los dejo caer en la venta se activa un evento que hace que el scroll siga la posición del mouse…
Generalmente esto me sucede cuando dejo caer los elementos al medio de elementos existentes en la datagrid.. cuando trato de escribir sobre algún elemento y muevo el mouse se mueve el scroll y cambia el elemento que estaba modificando.
Mi dataGrid es la siguiente…
Código :
<mx:DataGrid id="grillaDetalle" doubleClickEnabled="true" doubleClick="XXXXXXX()" width="100%" height="100%" dataProvider="{ dataDET }" editable="true" paddingLeft="0" click="onClickXXXXXXXXXXX(event)" dropEnabled="true" dragEnabled="true" dragEnter="dragEnterXXXX(event)" lockedColumnCount="1" horizontalScrollPolicy="on" dragDrop="handleEventDragDropXXXX(event)" > <mx:columns> // no las agrego son muchas </mx:columns> </mx:DataGrid>
Código ActionScript :
private function handleEventDragDropXXXX(event:DragEvent):void{ var dropTarget:DataGrid=DataGrid(event.currentTarget); event.stopImmediatePropagation(); DragManager.acceptDragDrop(dropTarget); var dropLoc:int=dropTarget.calculateDropIndex(event); var paso:Boolean; var _detalle : DetalleCPP; var _linea : DetalleCPP; var items:Array=event.dragSource.dataForFormat("items")as Array; for(var i:int=0; i < items.length; i++){ if (items[i] is PRG){ paso = false; for each( _linea in dataDET ){ if( _linea.PRG.id ==(items[i] as PRG).id ){ paso = true; break; } } if( paso ) continue; _linea = new DetalleCPP(); _idtem = _idTem -1; _linea.id = _idTem; _linea.PRG = PRG(items[i]); dataDET.addItemAt(_linea, dropLoc); } } dataDET.refresh(); } private function dragEnterXXXX (event:DragEvent):void{ var dropTarget:DataGrid=DataGrid(event.currentTarget); DragManager.acceptDragDrop(dropTarget); event.stopImmediatePropagation(); }
ojala me puedan ayudar...salu2s