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

Ext JS / Sencha Discussion :

[ExtJS4.2.4] TreeGrid - simuler un itemclick et avoir le eventObj ?


Sujet :

Ext JS / Sencha

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut [ExtJS4.2.4] TreeGrid - simuler un itemclick et avoir le eventObj ?
    Salut à tous,

    je simule un itemclick sur ma Treegrid, jusque là je sais faire, sauf que maintenant j'ai besoin dans mon fireEvent de lui passer le eventObj.


    voici mon bout de code dans mon controller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Recherche du Record dans mon Treegrid
    var n = mytreefolder.getStore().getNodeById(idx);
     
    ....
    // Selection du record dans le Treegrid qui fonctionne mais ne génère pas de itemClick
    mytreefolder.getSelectionModel().select(n);
     
    // ici je dois passer mes params, mais comment avoir eventObj ?
    mytreefolder.fireEvent('itemclick', view, n, null, null, e); // view, record, item, index, eventObj
    Comment puis-je obtenir le "e" dans mon fireEvent ?

    D'avance merci pour vos conseils,

    Cdlt,
    Bruno

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    quel eventObj ?

    A+JYT

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Mon fireEvent attend plusieurs paramètres dont le dernier est le eventObject.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // ici je dois passer mes params, mais comment avoir eventObj ?
    mytreefolder.fireEvent('itemclick', view, n, null, null, e); // view, record, item, index, eventObj

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    si tu veux simuler un click il te faut créer un clickEvent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var event = new MouseEvent('click', {
        'view': window,
        'bubbles': true,
        'cancelable': true
      });
    je te conseille d'utiliser la console de ton navigateur pour faire des tests
    car je suppose que le handler de itemClick s'attend à recevoir un clic sur un DOMElement

    il va donc falloir que tu renseigne le target les coordonnées etc.
    j'imagine que dans ton treeGrid tu simule le click sur un élément
    en l'inspectant tu trouveras le DOMElement qui lui est associé tu poura donc en extraire les coordonnées.

    A+JYT

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Alors là si tu as 2 minutes pour m'aider à trouver depuis mon treegrid le DomElement, je suis preneur.

    Je vois comment récupérer le record depuis le store de ma treegrid mais comment chopper l'element lui même ?

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Recherche du Record dans mon Treegrid
    var n = mytreefolder.getStore().getNodeById(idx);
    var nodeElement = mytreefolder.getView().getNode(n);
    A+JYT

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Merci pour cette info, j'avoue que je séchais un peu là...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Je suis vraiment désolé mais j'ai encore besoin de tes conseils, j'ai récupéré le nodeElement comme tu l'as écrit ci-dessus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <tr id="treeview-1052-record-96d1b85b5a7d0de5c7f23cc710313da1" class="x-grid-row x-grid-data-row x-grid-row-selected x-grid-row-focused" tabindex="-1" data-qtitle="" data-qtip="pl10" data-recordindex="6" data-recordid="96d1b85b5a7d0de5c7f23cc710313da1" data-boundview="treeview-1052">
    mais hélas dans ma fonction du treegrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    onItemClick: function (view, record, item, index, eventObj) {
            var colIdx                  = eventObj.getTarget('.x-grid-cell').cellIndex;
    j'obtiens l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TypeError: eventObj.getTarget is not a function
    var colIdx                  = eventObj.getTarget('.x-grid-cell').cellIndex;

    normal, car ce que j'attends est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Object { browserEvent=Event click,  type="click",  button=0,  plus...}
    Faut il que je crée un object Event comme tu l'as écrit dans tes premiers post en renseignant toutes les infos (et là je sais pas faire hélas...)
    ou alors c'est carrement autre chose qu'il faut que je fasse ?

    Désolé encore pour toutes mes questions....

  9. #9
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    la doc sur les mouseEvent donne ceci
    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
    function simulateClick() {
      var evt = new MouseEvent("click", {
        bubbles: true,
        cancelable: true,
        view: window,
      });
      var cb = document.getElementById("checkbox"); //élément sur lequel cliquer
      var canceled = !cb.dispatchEvent(evt);
      if(canceled) {
        // A handler called preventDefault
        alert("Annulé");
      } else {
        // None of the handlers called preventDefault
        alert("Pas annulé");
      }
    }
    document.getElementById("button").addEventListener('click', simulateClick);

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Super merci !

    je vais essayer d'adapter ceci à mon code !

    Encore merci pour ta patience...

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/09/2015, 20h24
  2. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  3. simuler l'execution d'un message
    Par gaut dans le forum C
    Réponses: 14
    Dernier message: 24/07/2003, 23h01
  4. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 11h31
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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