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

Bibliothèques & Frameworks Discussion :

[DOJO 1.10] Créer événement à la volée [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut [DOJO 1.10] Créer événement à la volée
    Hello,

    J'utilise Dojo dans le cadre de l'application WebAppBuilder.

    Je suis amené à générer une liste, sur laquelle j'aimerai pouvoir cliquer sur un élément quelconque et en récupérer le contenu afin d'instancier un formulaire. (AttributeInspector)

    J'ai à peu près tout essayer, que ce soit des dojo-attach-point, des data-dojo-attach-event, des on(...)...

    Mais rien n'y fait. Le fait que la liste soit générée après la création du document de manière générale, les attributs propre à Dojo ne sont pas reconnus.

    De quelle manière je peux procéder afin de pouvoir avoir un événement unique sur chaque ligne?


    Cordialement,
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Hello,

    Sujet résolu.

    Si jamais ça peut aider (même si j'en doute vu la popularité du framework ) :
    - J'ai généré un ID unique sur chaque ligne de ma liste
    - Et ensuite créé les événements de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    _functionName: function(cpt) {
     
    for (cpt; cpt>= 0; cpt--) {
              this.own(on(
                dom.byId('id_' + cpt),
                'click',
                lang.hitch(this, this._redirectFunction)
              ));
            }
    }
    Bonne journée !
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 975
    Points : 44 147
    Points
    44 147
    Par défaut
    Bonjour,
    tu aurais pu également passer par la délégation d'événement sur ta liste.

    Un petit exemple, qui n'est pas dans ton contexte mais c'est juste pour montrer.
    Code html : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <!DOCTYPE html>
    <html lang="fr-FR">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Délégation événement sur liste</title>
    <style>
    html, body {
      margin: 0;
      padding: 0;
      font: 1em/1.5 Verdana,sans-serif;
    }
    main {
      display: block;
      margin: 0 auto;
      max-width: 60em;
    }
    h1, h2, h3 {
      color: #069;
    }
    button {
      font: inherit;
      padding: .25em 1em;
      cursor: pointer;
    }
    #info {
      border-left: 3px solid #080;
      text-indent: 1em;
    }
    ul {
      width: 15em;
      padding: 2px;
      border: 1px solid #CCC;
      list-style: none;
    }
    li {
      padding: .25em;
      border: 1px solid #FFF;
      border-radius: 3px;
      cursor: pointer;
    }
    li:hover {
      border: 1px solid #ABC;
      background: #DEF;
    }
    </style>
    </head>
    <body>
    <main>
      <h1>Délégation événement sur liste</h1>
      <p id="info">Aucune sélection</p>
      <p><button id="btn">AddItem</button></p>
      <ul id="list">
        <li>Item #1</li>
        <li>Item #2</li>
        <li>Item #3</li>
      </ul>
    </main>
    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
    <script>
    require(["dojo/dom", "dojo/on", "dojo/dom-construct"], function (dom, on, domConstruct) {
      function addItem(id) {
        var oList = dom.byId(id);
        var num = oList.children.length;
        domConstruct.create("li", {
          innerHTML: "Item #" + (num + 1)
        }, oList);
      }
      on(dom.byId("list"), "click", function (e) {
        var oSrce = e.target;
        if (oSrce.tagName === "LI") {
          var oDest = dom.byId("info");
          oDest.textContent = "Sélection de " + oSrce.textContent;
        }
      });
      on(dom.byId("btn"), "click", function (e) {
        addItem("list");
      });
    });
    </script>
    </body>
    </html>

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Hello,

    Mmh, je te remercie pour la méthode !
    Il est clair qu'elle est bien plus technique que la mienne, j'ai bien trop peu de connaissances sur le framework pour en connaître toutes les capacités...

    Cette méthode est plus opti j'imagine?
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 975
    Points : 44 147
    Points
    44 147
    Par défaut
    Elle n'est pas plus optimisé mais lors de la création/ajout d'un nouvel élément tu n'as pas à te soucier de gérer/ajouter les événements, accessoirement elle prend moins de place en mémoire attendu que tu ne définies qu'une fonction pour l'ensemble de tes éléments et non une par élément, imagine que tu en ais 1000... voire plus (dans ce cas tu perdras peut être un peu en performance, temps de réaction).

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    J'ai procédé de manière plus "académique" on va dire, car je n'aurai jamais plus d'une dizaine de ligne maximum.

    Cela dit, je note ton petit bout de code dans un coin si je viens à travailler avec des données plus conséquentes !
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 975
    Points : 44 147
    Points
    44 147
    Par défaut
    ... car je n'aurai jamais plus d'une dizaine de ligne maximum.
    cela fait quand même une_dizaine_de_ligne_maximum -1 déclarations en trop

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer évènement sur le noeud d'un TreeView
    Par V_inSe dans le forum ASP.NET
    Réponses: 7
    Dernier message: 22/02/2011, 14h18
  2. [Win'Design] Créer événement date
    Par touronster dans le forum Autres
    Réponses: 2
    Dernier message: 29/01/2009, 16h24
  3. Réponses: 8
    Dernier message: 16/02/2007, 06h35
  4. [C#] Créer son journal d'évènement perso
    Par globeriding dans le forum ASP.NET
    Réponses: 17
    Dernier message: 16/01/2006, 22h56
  5. Créer des événements
    Par thebeb dans le forum MFC
    Réponses: 8
    Dernier message: 04/02/2005, 16h45

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