Bonjour à tous,
Après avoir fait un tour sur le forum sans trouver de solution à mon pb, je m'en remet à vous.
Je souhaite pouvoir faire un drag d'un item sélectionné dans un Datagrid et ensuite faire un drop dans une cellule d'un AdvancedDataGrid.
Voici mon datagrid :
et mon AdvancedDataGrid:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <mx:DataGrid id="dtgCellule2" dataProvider="{dpCellules}" width="100%" height="100%" dragEnabled="true"> <mx:columns> <mx:DataGridColumn dataField="numCellule" headerText="N° cellule" visible="false" /> <mx:DataGridColumn dataField="typeCellulaire" headerText="Type de cellule" width="250" /> <mx:DataGridColumn dataField="nbPassage" headerText="Nombre de passage" /> <mx:DataGridColumn dataField="dateCongelation" headerText="Date congélation" /> <mx:DataGridColumn dataField="nbCellule" headerText="Nombre de cellules" /> <mx:DataGridColumn dataField="nbCryoInitial" headerText="Nombre de cryotubes initial" /> <mx:DataGridColumn dataField="naturePrelevement" headerText="Nature prélèvement" /> <mx:DataGridColumn dataField="numDonneur" headerText="N° Donneur" /> <mx:DataGridColumn dataField="numPool" headerText="N° Pool" /> <mx:DataGridColumn dataField="etat" headerText="Etat" /> </mx:columns> </mx:DataGrid>
En fait je souhaite pouvoir affecter par exemple la valeur sélectionnée dans mon datagrid (a savoir dans la colonne type de cellule) et pouvoir la positionner dans n'importe quelle ligne et colonne de mon AdvancedDataGrid sachant que celui-ci est en selectionMode="singleCell".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <mx:AdvancedDataGrid id="dtgRangement" dataProvider="{dpRangementsBoite}" width="100%" height="100%" selectionMode="singleCell" dropEnabled="true" dragEnter="dragEnterHandler(event)" dragDrop="dragDropHandler(event);"> <mx:columns> <mx:AdvancedDataGridColumn dataField="rangementCol1" headerText="Col1" /> <mx:AdvancedDataGridColumn dataField="rangementCol2" headerText="Col2" /> <mx:AdvancedDataGridColumn dataField="rangementCol3" headerText="Col3" /> <mx:AdvancedDataGridColumn dataField="rangementCol4" headerText="Col4" /> <mx:AdvancedDataGridColumn dataField="rangementCol5" headerText="Col5" /> <mx:AdvancedDataGridColumn dataField="rangementCol6" headerText="Col6" /> <mx:AdvancedDataGridColumn dataField="rangementCol7" headerText="Col7" /> <mx:AdvancedDataGridColumn dataField="rangementCol8" headerText="Col8" /> <mx:AdvancedDataGridColumn dataField="rangementCol9" headerText="Col9" /> <mx:AdvancedDataGridColumn dataField="rangementCol10" headerText="Col10" /> </mx:columns> </mx:AdvancedDataGrid>
La seule chose que j'arrive à faire c'est d'ajouter une ligne dans mon AdvancedDataGrid avec n'importe quel index mais je n'arrive pas à modifier une ligne existante et notamment la cellule sélectionnée :
Merci d'avance pour votre aide!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private function dragEnterHandler(event:DragEvent):void { DragManager.acceptDragDrop(dtgRangement); DragManager.showFeedback(DragManager.MOVE); } private function dragDropHandler(event:DragEvent):void { if (event.dragSource.hasFormat("items")) { event.preventDefault(); event.currentTarget.hideDropFeedback(event); var dropTarget:AdvancedDataGrid = AdvancedDataGrid(event.currentTarget); var itemsArray:Array = event.dragSource.dataForFormat('items') as Array; var tempItem:Object = { rangementCol1: itemsArray[0].typeCellulaire }; var dropLoc:int = dropTarget.calculateDropIndex(event); IList(dropTarget.dataProvider).addItemAt(tempItem,dropLoc); } }
Partager