DataGrid - Modifier la ligne sélectionnée lorsqu'un bouton est cliqué
-
20-09-2019 - |
Question
J'ai un DataGrid très simple avec 2 colonnes, quelque chose comme ceci:
<mx:DataGrid id="grid" >
<mx:columns>
<mx:DataGridColumn dataField="name" headerText="Name"/>
<mx:DataGridColumn dataField="date" headerText="Date"/>
</mx:columns>
</mx:DataGrid>
Qu'est-ce que Im essayant de faire est d'activer l'édition de la ligne sélectionnée lorsque l'utilisateur clique sur un bouton. Jusqu'à présent, je suis incapable de trouver un exemple de la façon de le faire. Je l'ai déjà essayé 6 ou 7 approches différentes, mais non des œuvres. Est-ce que quelqu'un a une idée de comment faire cela?
Comment obtenez-vous la ligne sélectionnée (NON selectedItem) d'un DataGrid et comment pouvez-vous:
- Modifier la ItemRenderEditor ou ItemRenderer à la volée de seulement cette ligne.
- Ou permettre l'édition de cette ligne spécifique sans cliquer.
Ce sont les questions que j'ai été incapable de répondre
aide sera grandement apprécié.
La solution
Vous pouvez obtenir la ligne sélectionnée avec la propriété grid.selectedIndex. Une pensée à vous problème:
- Ajouter une propriété « modifiable » aux éléments que vous dans le DataGrid qui est faux par défaut
- En cliquant sur le bouton, réglez grid.selectedItem.editable = true;
- Passer à un nouveau moteur de rendu de l'élément de la grille, qui affiche des champs TextInput si un élément est modifiable étiquette ou tout simplement si ce n'est pas
Vous pouvez modifier le rendu d'élément lors de l'exécution comme ceci:
grid.itemRenderer = new ClassFactory(com.myapp.renderers.MyGridItemRenderer);