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 :

Checkbox dans une Datagrid, ne pas sélectionner la ligne


Sujet :

Flex

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut Checkbox dans une Datagrid, ne pas sélectionner la ligne
    Bonjour,

    J'ai une s:Datagrid avec plusieurs colonnes. La première colonne doit être une checkbox qui me permet de sélectionner plusieurs lignes de la datagrid si besoin.

    J'ai donc crée un GridItemRenderer avec une checkbox.

    Le problème est que quand je clique sur une checkbox de ma grille, le premier clic me sélectionne la ligne de la grille, alors que moi, je voudrais juste que la checkbox change d'état. Quelqu'un aurait-il déjà eu ce problème et aurait-il trouvé une solution ?

    Merci.

  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,
    essaye peut être de jouer sur le rendu graphique de la ligne, sur l'event itemClick par exemple, ou tout simplement dans une classe d'un fichier css.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    merci,

    aurais tu un exemple ou un truc un peu plus détaillé ?
    Avec le Flex 3 ce que je faisais et qui fonctionnait bien c'était dans l'itemrenderer, intercepté le change et sur l'event faire un .stopPropagation();

    ça fonctionnait .. ça fonctione plus avec spark et la s:dataGrid ...

  4. #4
    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,

    Finalement jouer sur le rendu graphique n'est peut être pas une bonne idée (ton item est quand même sélectionné, bien que la ligne ne soit pas colorée)

    et si tu faisais plutôt dans le renderer quelquechose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (owner as Datagrid).selectedItem = null;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    non, ça ne fonctionne pas.
    Le problème est que le premier click selectionne la ligne de la DataGrid.

    Si je veux sélectionné le checkbox, je dois d'abord sélectionné la ligne et puis cliquer sur le checkbox.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut
    Bonjour,

    je n'ai pas fait le test, mais peut-être peux-tu "disabler" la sélection de la dataGrid
    Je ne sais pas si l'itemRenderer sera encore accessible.

    Sinon tu peux aussi jouer sur la couleur de sélection de la ligne pour rendre la sélection "invisible".

    ++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    je ne veux pas 'disabler' la sélection de ma datagrid. Je veux pouvoir sélectionner une ligne, sauf si on click dans la colonne de la checkbox, ou le but est justement de pouvoir sélectionner plusieurs ligne à la fois.

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut
    Re bonjour,

    Peut-être que tu pourrais utiliser la propiété "AllowMultipleSelection" dans la datagrid et ta passer de la checkBox, ou de la cocher automatiquement.

    Sinon voici le code que j'ai pour une datagrid, avec un itemRenderer et une checkBox qui fait ce que tu veux faire. (J'ai n'ai besoin que d'un clique pour sélectionner ou désélectionner la checkbox)

    DataGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <mx:DataGrid dataProvider="{myModel.myArray}" width="100%" height="480">
    				<mx:columns>
    					<mx:DataGridColumn dataField="num" headerText="Numéro "/>
    					<mx:DataGridColumn dataField="lbl" headerText="Intitulé "/>
    					<mx:DataGridColumn width="100" dataField="swTreat" headerText="Statut" itemRenderer="CheckOpeRenderers"/>
     
    				</mx:columns>
    			</mx:DataGrid>
    CheckOpeRenderers:
    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
    <fx:Script>
    		<![CDATA[
    			;
    			[Bindable]
    			private var myModel : AppModelLocator = AppModelLocator.getInstance();
     
    			protected function check(event:MouseEvent):void
    			{
    				if (data.swTreat==0)
    					data.swTreat=1;
    				else
    					data.swTreat=0;
    				myModel.myArray.itemUpdated(data);
    			}
    		]]>
    	</fx:Script>
     
     
    	<s:HGroup horizontalAlign="center">
    		<s:CheckBox click="check(event)" id="checkSoldeId" selected="{data.swTreat==1 ? true : false}" enabled="{data.swTreatDb!=1 ? true : false}" />
    	</s:HGroup>
    J'espère que c'est cela que tu voulais

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    Merci,

    Mais je n'ai aucun souci avec les datagrid mx:DataGrid.
    Mon problème vient de la datagrid spark <s:DataGrid.

    Si je n'ai pas le choix, je repasserai sur la mx:DataGrid.

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/02/2011, 11h54
  2. Tester une checkbox dans une datagrid
    Par lilp1 dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/12/2010, 16h20
  3. Remplir une colonne checkBox dans une datagrid
    Par ouinih dans le forum Développement Windows
    Réponses: 3
    Dernier message: 26/11/2010, 21h25
  4. Réponses: 10
    Dernier message: 06/05/2010, 20h51
  5. Réponses: 4
    Dernier message: 15/02/2010, 21h41

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