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 :

Simuler un click sur la touche "tab"


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Simuler un click sur la touche "tab"
    Bonjour,

    est-il possible de simuler un click sur la touche "tab" du clavier.

    Mon souhait :

    Lorsque je parcours les différents ITEM de ma datagrid (Editable=True) avec la touche "TABulation", je voudrais dans certain cas (Et suivant la valeur de l'item) passer tout de suite a l'édition de l'item suivant.

    Exemple du datagrid.

    SEXE | PRENOM | NOM | NOMJF | DATE NAISSANCE

    Je voudrais via la tabulation, passer de NOM à DATE NAISSANCE si le sexe est Masculin. (L'idéal serait en même temps de rendre l'item NOMJF non éditable).

    Merci pour vos suggestions

  2. #2
    Membre confirmé Avatar de ouaqa
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Voici la façon dont je procederais :

    J'ajouterais un event listenner pour les keyboarEvent dont l'utilisation est décrite ici.

    Dans ma fonction écoutant les KeyboardEvents, je testerais la propriété "keycode" de l'event et je la comparerais avec le keycode de la touche tabulation.

    Si on en crois ce tableau de valeurs, je testerais donc si KeyBoardEvent.keycode == 9 .

    Voila, j'ai jamais essayé mais c'est un point de départ.

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

    pour compléter ce que dit ouaqa, je dirais que c'est précisément la façon de faire

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

    merci de vos réponses mais ce n'est pas exactement ce que je veux faire.

    Le principe que vous m'expliquez permet de savoir quand un utilisateur à utilisé la touche "Tabulation".

    Je voudrais, moi, dans certain cas, dire à l'application de faire comme si l'utilisateur avait fait tabulation alors qu'il ne fait rien...

    merci

  5. #5
    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,
    Pour cela il faut que tu changes le focus sur les cellules de ta datagrid.
    Plus concrètement, tu dois spécifier à ta datagrid quelle cellule devient éditable, avec une ligne comme celle-ci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataGrid.editedItemPosition = {rowIndex: 1, columnIndex: 1};
    Plus d'infos ici.

    Est-ce que ça répond à ta question ?

  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
    J'avais déjà vu cette fonction mais cela ne fonctionne pas dans mon cas. (Il semblerait que cela fonctionne avec des ItemRenderer).

    Voici un peu de code afin de vous montrer ce que je veux faire plus précisément.

    J'ai un tableau avec 2 colonnes (Montant Achat - Montant Vente).

    Seulement 1 des valeurs ne peut-être saisies... Lorsque je commence l'edit sur montantAchat, je vérifie si il existe un montant vente, si oui je voudrais placer le focus directement sur l'item montantVente.

    La fonction "EditedItemPosition" ne bouge pas mon focus dans la colonne Vente.

    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
     
     
    private function editData(evt:DataGridEvent):void {
      if (evt.dataField=="montantAchat"){
    	if (model.arrayChange.getItemAt(evt.rowIndex).montantVente!=''){
    	//trace ("Montant Vente déjà existant","Erreur");
    	mdg.editedItemPosition = {rowIndex: evt.rowIndex, columnIndex :1};
    	}					
      }
    }
     
     
    <mx:DataGrid id="mdg" itemEditBeginning="editData(event)" dataProvider="{model.arrayChange}">
       <mx:columns>
          <mx:DataGridColumn id="colonneMontantAchat" sortable="false" editable="true" dataField="montantAchat" headerText="MONTANT" />
          <mx:DataGridColumn  sortable="false" id="colonneMontantVente" editable="true" dataField="montantVente" headerText="MONTANT"/>
       </mx:columns>
    </mx:DataGrid>

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/01/2007, 12h47
  2. Réponses: 4
    Dernier message: 25/07/2005, 14h24
  3. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 12h51

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