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 :

Associer un événement à la validation d'un contrôle


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut Associer un événement à la validation d'un contrôle
    Bonjour,

    Je suis en train de créer un formulaire qui se construit petit-à-petit suivant les réponses de l'utilisateur.
    J'ai donc un seul formulaire avec l'attribut runat="server" (j'avais pensé à en créer plusieurs... mais ce n'est pas possible).

    Ainsi, j'aurai parfois sur cette page plusieurs petits blocs indépendants.
    Sur la pièce jointe, les quatre champs correspondent à une recherche différents.

    Comment faire pour qu'un appui sur la touche [Entrée] soit associé au clic sur un bouton en particulier ?

    Pour l'instant, la validation est associée au clic sur le bouton le plus "en haut" de la page. Pas très ergonomique !

    Merci d'avance !

    Alban

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 212
    Points
    212
    Par défaut
    propriété "validate group" j'imagine deja
    pour délimiter l'action de la touche entree

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Je crois que je ferai quelque-chose de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <input name="input1" type="text" onkeypress="javascript:connect1();" />
     
    function connect1()
    {
       if(event.keyCode==13)
       {
          __doPostBack(les arguments qui vont bien pour ce bouton);
       }
    }
    mais je ne pense pas que ce soit la meilleure solution...

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    BCmDev>
    Si ça fonctionne, c'est déjà ça
    Par contre, c'est des <asp:textbox>, donc faut adapter le code...
    Et quand tu parles des arguments du __doPostback, c'est quoi ?

    Merci en tout cas !

    X-Nem>
    J'ai cherché quelque chose comme ça... mais je n'ai pas trouvé.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String onKeyPressScript = ...;
    textBox.Attributes.Add('onkeypress', onKeyPressScript);
    plus un Page.RegisterStartupScript() si tu écris une fonction dans un script à part.

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Tu associe le controlID que tu veux associer à la touche [Entrée] sur ton objet formulaire, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form1.DefaultButton = monBouton.ID;

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Citation Envoyé par guitoux1
    Tu associe le controlID que tu veux associer à la touche [Entrée] sur ton objet formulaire, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form1.DefaultButton = monBouton.ID;
    Ca ne va pas dans mon cas.

    Par exemple, quand j'appuie sur "entrée" depuis TextBox1, je veux que ça corresponde à Button1, pour TextBox2 et textBox3, Button2, etc.

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Citation Envoyé par BCmDev
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String onKeyPressScript = ...;
    textBox.Attributes.Add('onkeypress', onKeyPressScript);
    plus un Page.RegisterStartupScript() si tu écris une fonction dans un script à part.
    J'essaie demain. Merci !

    Et dans le __doPostBack(), je mets quoi ? Des contrôles ? Les valeurs que je veux passer ?

  9. #9
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    A ok, j'avais pas saisie ça.
    Alors dans ce cas, utilise des panels. Il existe même propriété DefaultButton avec les Panel. Tu met un panel par groupe de TextBox/Button, et sur chacun des Panel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panelX.DefaultButton = buttonX.ID;

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Citation Envoyé par guitoux1
    A ok, j'avais pas saisie ça.
    Alors dans ce cas, utilise des panels. Il existe même propriété DefaultButton avec les Panel. Tu met un panel par groupe de TextBox/Button, et sur chacun des Panel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panelX.DefaultButton = buttonX.ID;
    Je ne trouvais pas... et visiblement, c'est spécifique au framework 2 (et +)
    Le problème, c'est que je travaille avec le framework 1... dommage

  11. #11
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    A merde, désolé. C'est con en plus, à l'époque ou je bosser sur 1.1, je faisait souvent ce genre de truc, mais maintenant j'ai complétement oublier

  12. #12
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Argh...
    Et il ne te reste aucun source où regarder ?

    Enfin, si tu me dis que c'est faisable, je vais essayer de chercher.

  13. #13
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Sur ce même forum, j'ai trouvé ça : http://www.developpez.net/forums/arc...p/t-26720.html
    Visiblement, j'en demande beaucoup au pauvre framework...

    Ceci dit, j'ai trouvé ça aussi : http://www.codeproject.com/useritems/FormPanel.asp
    Je vais tester, ça a l'air prometteur !

    Le problème, c'est qu'il faut que j'ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Page language="c#" [...] Inherits="FormPanel.Default" %>
    Mais j'ai déjà un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Inherits="fr.[couic].Affaire"
    On peut utiliser deux Inherits ?!

  14. #14
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Fini ! Et ça marche !
    Pour la dernière étape qui posait problème, il fallait ajouter à ma_page.aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="custom" Namespace="namespace_perso.clsFormPanel.Controls" Assembly="nom_de_mon_appli" %>

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/08/2008, 09h34
  2. [Débutant] Associer un évènement à un bouton JAVA
    Par melodyyy dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 28/01/2008, 21h44
  3. Creation dynamique TADODataSet et association d'évènements
    Par yamino dans le forum Bases de données
    Réponses: 5
    Dernier message: 02/10/2007, 18h04
  4. Réponses: 3
    Dernier message: 27/11/2005, 15h04
  5. Réponses: 7
    Dernier message: 23/08/2005, 16h56

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