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 :

[2.0][C#] specifier le boutton de validation lors de la saisie


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut [2.0][C#] specifier le boutton de validation lors de la saisie
    bonjour

    j'ai un petit formulaire de recherche, où il y a 2 champs de texte et deux bouttons.
    je veux que lorsque je saisie dans le 1er champs et je tape "ENTRER" dans le clavier comme si je click sur le 1er boutton, et lorsque je saisie dans le 2eme champs et je tape "ENTRER" dans le clavier comme si je click sur le 2eme boutton, c'est à dire dans la methode "Mon_TextBox_TextChanged" je specifie quel est le boutton qui va valider la recherche.
    comment ça se fait??
    et merci infiniment pour votre réponse.

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Tu disposes d'une propriété nommée ValidationGroup qui est une chaîne de caratère. Elle permet de regrouper les contrôles par groupe de validation (comme son nom l'indique...).

    Pour l'utiliser, il faut associer la même valeur de ValidationGroup à ton premier TextBox ainsi qu'au boutton qui vas avec et faire de même pour le second TextBox.

    En cas de problème.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut
    merci pour ta réponse, mais ça ne marche pas.
    j'ai éssayé d'ajouter la méthode "TextChanged" qui redéfinit le boutton par défaut pour le formulaire: "this.Form.DefaultButton = Button1.UniqueID;"
    mais lors de l'exécution, je dois appuyer 2 fois sur "ENTRER" pour que ça marche (même si j'ai rendu le textbox autopostback): la premiere fois le boutton est séléctionné et la deuxieme fois il s'execute.
    merci de votre aide

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut
    bojour,
    toujours pas de solutions?!

  5. #5
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Citation Envoyé par just1980
    merci pour ta réponse, mais ça ne marche pas.
    j'ai éssayé d'ajouter la méthode "TextChanged" qui redéfinit le boutton par défaut pour le formulaire: "this.Form.DefaultButton = Button1.UniqueID;"
    mais lors de l'exécution, je dois appuyer 2 fois sur "ENTRER" pour que ça marche (même si j'ai rendu le textbox autopostback): la premiere fois le boutton est séléctionné et la deuxieme fois il s'execute.
    merci de votre aide
    Quand je relis mon message et ton premier message, je vois qu'on parlait de deux trucs différents

    La solution que je te propose n'utilise pas de TextBox serveur, c'est à dire que tu vas utiliser un <input type="text" .../> (palette de composants HTML donc...) et on vas effectuer la validation côté client. La raison de ce choix est qu'on souhaite détecter l'appui sur la touche ENTREE quand la zone d'édition a le focus et par conséquent il faut exploiter l'évènement OnKeyDown (côté client)...

    Schématiquement, on a ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input type="text" id="zone1" OnKeyDown="zone1_KeyDown()" />
    <asp:Button runat="server" ID="Button1" Text="Valide1" />
     
    <input type="text" id="zone2" OnKeyDown="zone2_KeyDown()" />
    <asp:Button runat="server" ID="Button2" Text="Valide2" />
    Il faut ensuite désactiver la validation automatique des buttons parce que lors de l'appui sur ENTREE, le formulaire est automatiquement validé.

    Pour cela, on utilise l'attribut UseSubmitBehavior et on le met à false pour les deux buttons de ton formulaire.

    Ensuite, pour terminer, tu codes l'évènement KeyDown de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    zone1_KeyDown()
    {
      if(event.keyCode == 13) //A-t-on appuyé sur ENTREE ?
      {
        document.GetElementByID('Button1').click();//On clique sur le Button1
      }
    }
    Voilà, cà devrait normalement fonctionner mais je te rappele que tu perdras les avantages Serveur de ta zone de saisie. Au pire, tu peux toujours mettre un contrôle serveur dans le formulaire et tu définis sa propriété Visible à False et ce dernier contiendra un peu avant la validation la valeur du contrôle HTML.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut
    merci bcp pour ta réponse, mantenant je saisie plus clairement ce que vous voulez dire.
    je vais essayer ceci tout de suite, et vous dire le résultat.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut
    j'ai testé ce que vous m'avez dit, mais ça n'a pas encore marché,

    code html et aspx:
    <input type="text" id="zone1" onkeydown="zone1_KeyDown()" style="z-index: 112; left: 20px; position: absolute; top: 34px" />

    <input type="text" id="zone2" onkeydown="zone2_KeyDown()" style="z-index: 111; left: 19px; position: absolute; top: 61px" />

    <asp:Button runat="server" ID="Button7" Text="Valide1" UseSubmitBehavior="false" />

    <asp:Button runat="server" ID="Button8" Text="Valide2" UseSubmitBehavior="false"/>


    code C#: (je l'ai écrit dans le Code Behinde mais ça n'a pas marché.. donc je l'ai écrit dans une balise <script> )

    <head runat="server">
    <title>Untitled Page</title>
    <script type="text/C#">
    public void zone1_KeyDown()
    {
    if (event.keyCode == 13) //A-t-on appuyé sur ENTREE ?
    {
    document.GetElementByID("Button7").click();//On clique sur le Button7

    }
    }
    public void zone2_KeyDown()
    {
    if (event.keyCode == 13) //A-t-on appuyé sur ENTREE ?
    {
    document.GetElementByID("Button8").click();//On clique sur le Button8
    }
    }
    </script>
    </head>

    merci encore une fois

  8. #8
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Aie, tu n'y est pas du tout !
    Je n'ai pas tout lu mais quand je vois cà :

    <script type="text/C#">
    Je sais que tu n'y est pas.

    Stp, patientes jusqu'à demain. Il y'a quelques améliorations, notamment :

    Citation Envoyé par Giovanny Temgoua
    La solution que je te propose n'utilise pas de TextBox serveur, c'est à dire que tu vas utiliser un <input type="text" .../> (palette de composants HTML donc...) et on vas effectuer la validation côté client. La raison de ce choix est qu'on souhaite détecter l'appui sur la touche ENTREE quand la zone d'édition a le focus et par conséquent il faut exploiter l'évènement OnKeyDown (côté client)...
    Ce n'est pas tout à fait exact parce que j'ai lu tout à l'heure dans la doc et j'ai testé qu'on pouvait ajouter un attribut "inexistant" à un contrôle serveur et ce dernier ne sera pas parsé mais recopié tel que comme attribut du rendu en HTML. C'est à dire que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:TextBox name="textbox1" runtat="server" id="zone2" OnKeyDown="zone2_KeyDown()" />
    marchera également

    Je suis trop donc je te posterai le code demain seulement.
    Mais je te rassures, cà fonctionne chez moi

  9. #9
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Tu as le fichier en pièce jointe.
    Le .aspx et le .cs.

    J'ai :
    - mis deux TextBox dans un formulaire et deux bouttons : lorsque tu saisis dans un TextBox et que tu valides, un boutton est validé
    - mis deux labels qui sont invisibles normalement mais qui deviennent visible suivant le boutton qu'on a appuyé

    ++
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 123
    Par défaut
    ça marche parfait ton exemple, je ne sais pas comment te remercier
    excuse moi ma mauvaise compréhension au debut, parce que je n'ai jamais travaillé avec javascript.
    mille merci encore une fois.

  11. #11
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Citation Envoyé par just1980
    ça marche parfait ton exemple, je ne sais pas comment te remercier
    excuse moi ma mauvaise compréhension au debut, parce que je n'ai jamais travaillé avec javascript.
    mille merci encore une fois.
    Cà fait plaisir

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

Discussions similaires

  1. [VB] Webbrowser et "Specified cast is not valid."
    Par oliverell62 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/06/2013, 07h57
  2. Specified cast is not valid
    Par Titi41 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 29/05/2008, 17h38
  3. [VB.NET][ASP.Net]Specified cast is not valid
    Par Irish dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/12/2006, 12h35
  4. Réponses: 3
    Dernier message: 25/09/2006, 15h48
  5. Erreur "specified cast is not valid"
    Par [DreaMs] dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 30/01/2006, 21h15

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