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

ASP.NET Discussion :

[C#] Comment associer le clique "entrée"


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 138
    Points
    138
    Par défaut [C#] Comment associer le clique "entrée"
    Bonjour,

    J'ai une page aspx avec 2 boutons "GO" et plusieurs dropdownlist et textbox.
    Comment associer le clique sur le bouton "entrée" à l'un ou l'autre de l'événement OnClick de mes boutons "GO" en fonction de la dropdownlist ou de la textbox dans laquelle je me trouve?
    D'avance merci,
    JULIEN

  2. #2
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    En appelant la meme fonction...

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 138
    Points
    138
    Par défaut
    Je te demande pardon????? Tu peux être plus explicite s'il te plaît?
    Il me faudrait quelque chose comme l'équivalent d'un OnClickEntreeKey où je pourrais alors voir qui a le focus et en fonction de cela appeller tel ou telle action, mais je ne crois pas que cela existe malheureusement...

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 138
    Points
    138
    Par défaut
    Bonjour,
    Y aurait-il aujourd'hui du monde pour m'aider à résoudre mon problème s'il vous plaît?
    JULIEN

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Et bien tu associes à l'evenent onclick de tes 2 boutons la meme fonction...
    Et dans cette fonction tu analyses les valeurs des ta dropdownlist et autre champos...

    Ex :

    fonction validation()
    {

    si (dropdownlist.Value == X)
    {
    tu appelles la fonction correspondant à GO1
    }
    sinon

    tu appelles la fonction correspondant à GO2
    }

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 138
    Points
    138
    Par défaut
    C'est une solution, enf effet. Merci. Mais ce n'est pas très propre tout de même. N'y a-t-il pas moyen de gérer les événement clavier et plus particulièrement l'appuie sur la touche Entrée?
    Qu'est-ce qui fait d'ailleurs que lorsque je clique sur "entrée", cela génère l'appel à l'un ou l'autre de mes boutons? Je n'ai rien codé en ce sens.
    Merci.
    JULIEN

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par jmclej
    C'est une solution, enf effet. Merci. Mais ce n'est pas très propre tout de même. N'y a-t-il pas moyen de gérer les événement clavier et plus particulièrement l'appuie sur la touche Entrée?
    Qu'est-ce qui fait d'ailleurs que lorsque je clique sur "entrée", cela génère l'appel à l'un ou l'autre de mes boutons? Je n'ai rien codé en ce sens.
    Simple question de HTML.

    Enter déclenche le premier champ de type submit du formulaire dans lequel on se trouve. 99.9% des formulaires bien foutus ont *un* bouton submit, Enter a donc le même rôle, tout va très bien. Dans ton cas, il faudrait un formulaire avec le premier bouton GO et les champs associés, et un autre avec le deuxième et ses champs associés. Enter dans l'un ou l'autre des formulaires déclencherait le bon submit.

    Ça c'est la méthode propre, normale, HTML.


    Arrivent MS et les WebForms. MS étant un modèle de perfection pour ce qui est de la compréhension du HTML, ils ont eu la brillante idée de claquer un seul formulaire sur toute la page et de bidouiller en javascript pour déclencher les différentes actions.

    Effet secondaire : faire Enter n'importe où sur la page déclenche le submit du formulaire de la page. Quelle action il aura ? Aucune idée. Comment l'empêcher ? En n'ayant aucun bouton de type submit sur la page. Comment faire ça ? En repérant les contrôles qui correspondent à des <input type="submit" /> et <input type="image" /> et en invoquant la clémence des astres.

    Comment, avec les WebForms, appliquer le fonctionnement propre, normal, HTML qui est utilisé... partout ailleurs ? On ne peut pas. Il ne peut y avoir qu'un seul formulaire, quel que soit l'endroit où on fait Enter, ça déclenche toujours la même action, généralement sans rapport, et on n'y peut pas grand chose. Les navigateurs fonctionnent comme il faut. C'est le principe du formulaire unique qui est complètement foireux (bon sang que c'est dur de ne pas se répandre en insultes sur les sombres abrutis qui ont pondu ça).

    Bref, soit on bidouille (la solution indiquée dans ce topic), soit on dit adieu aux WebForms (et si on ne connait pas bien le HTML, faut commencer par l'apprendre sinon c'est pas la peine).


    Enfin c'est pratique pour repérer les sites faits en ASP.NET, sans regarder l'extension des fichiers. Si quand on clique sur un champ de recherche, qu'on rentre un mot et qu'on fait Enter, on arrive sur une page disant que le login est incorrect, c'est que le site utilise les WebForms.

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 138
    Points
    138
    Par défaut
    et bien merci pour ces infos. Je prends donc l'option "crado" à mon compte et ça ira bien! Enfin j'espère car je ne l'ai pas encore testé, mais ça devrait aller je pense, ne me dites pas qu'on ne peut pas voir quel élément à le focus quand même...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par jmclej
    ne me dites pas qu'on ne peut pas voir quel élément à le focus quand même...
    On ne peut pas voir quel élément a le focus :)
    On peut se brancher sur les évènements correspondant à l'obtention/perte du focus (quand ça marche), et une fois le formulaire serveur envoyé, on peut savoir par quel contrôle il a été envoyé. Dans le cas de Enter par contre, c'est pas garanti :)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/01/2007, 16h25
  2. [MFC] comment associer 2 valeurs à une ComboBox
    Par drinkmilk dans le forum MFC
    Réponses: 2
    Dernier message: 13/04/2005, 12h41
  3. comment obtenir l’intervalle de mois entre deux date
    Par looc 6699 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/02/2005, 12h08
  4. Comment minimiser le trafic réseau entre appli et serveur ?
    Par delphi+ dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 15h43

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