IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Datagrid : combobox et edition


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut Datagrid : combobox et edition
    Bonjour à tous,

    j'ai un souci avec un datagrid éditable. Je m'explique, dans mon datagrid chaque ligne possède les cellules suivantes :
    - cellule de texte (non éditable),
    - cellule de type combobox,
    - cellule de texte (éditable).

    Ci-dessous un extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <mx:DataGrid height="100%" width="100%" dataProvider="{dataFiche}" editable="true" wordWrap="true" sortableColumns="false" draggableColumns="false">
    	<mx:columns>
    	<mx:DataGridColumn dataField="libelle" headerText="false" width="255" fontWeight="bold" />
    	<mx:DataGridColumn dataField="niveau" headerText="Niveau" textAlign="center" width="120"
    		rendererIsEditor="true" editorDataField="value" itemRenderer="monRendererComboBox" />
    	<mx:DataGridColumn dataField="commentaire" headerText="Commentaire" width="375" />
    	</mx:columns>
    </mx:DataGrid>
    Le problème c'est que dès que je change une valeur dans une combobox, les cellule de textes de mon datagrid ne sont plus éditables (elles le sont bien tant que je ne touche pas aux combobox).

    Quelqu'un a-t-il déjà rencontré ce problème ou aurait-il une idée du pourquoi du comment se fait-ce ?

    merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,

    sauf erreur, je ne comprend pas comment t'as première colonne peut être non éditable (dixit ton post) : rien ne limite l'édition sur cette colonne en particulier.

    Peux-tu nous montrer le code qu'il y a dans ton renderer combobox stp ?

  3. #3
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    Oups, effectivement, la propriété "editable" (et non pas "headerText"...) de la première colonne est bien entendu à false... Il faut donc lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:DataGridColumn headerText="" editable="false" width="255" fontWeight="bold" />
    Quant au code du renderer, le voici :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center">
     
    	<mx:Script>
    		<![CDATA[
    			import mx.utils.ObjectUtil;
    			public var selectedNiveau:int=1;
     
    			[Bindable]
    			private var niveaux:Array = [
    				{label:"Valeur 1", value:1},
    				{label:"Valeur 2", value:2},
    				{label:"Valeur 3", value:3}
    			];
     
    			override public function set data(value:Object):void {
    				super.data = value;
    				if (value != null) {
    					var currentValue:int = value.NIVEAU;
    					for (var i:int = 0; i < this.niveaux.length; i++) {
    						if (this.niveaux[i].value == currentValue) {
    							this.cb.selectedIndex = i;
    							break;
    						}
    					}
    				}
    			}
     
    			public function onChange():void {
    				var index:int = this.cb.selectedIndex;
    				this.selectedNiveau = this.niveaux[index].value;
    			}
    		]]>
    	</mx:Script>
     
    	<mx:ComboBox id="cb" dataProvider="{niveaux}" width="120" change="onChange()" prompt="Sélectionner..." />
     
    </mx:VBox>

Discussions similaires

  1. Combobox sur edit d'une cellule de DataGrid
    Par Jean-Marc68 dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 07/12/2014, 02h28
  2. Datagrid & Combobox avec entity
    Par deathspirit dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 29/01/2013, 14h08
  3. DataGrid & ComboBox
    Par MathieuMN dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 07/02/2012, 14h47
  4. [FLASH MX] dataset datagrid combobox
    Par totoche dans le forum Flash
    Réponses: 1
    Dernier message: 03/08/2005, 17h55
  5. combobox et edit
    Par Fallenseb dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/06/2003, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo