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 :

Un validator pour une CheckBox


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Un validator pour une CheckBox
    Bonjour

    J'ai essayé de mettre un validator sur une CheckBox, mais il est pas d'accord je n'arrive pas à comprendre pourquoi ?

    Comment vous faites pour contrôler qu'une CheckBox est Checked ou pas ?

    Merci pour votre aide.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Vite fait, au passage, sans garantie de résultat:
    il existe une propriété initial value sur le requiredfield validator.

    Si tu mets -1 à cette propriété et que la value de tes checkbox est différente, tu devrais pourvoir les valider.

    Sinon en javascript c'est vite fait.

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    J'ai essayé et j'ai toujours le même message, à l'affichage de la page, direct

    Le contrôle 'cbAcceptCondition' référencé par la propriété ControlToValidate de 'rfvChk' ne peut pas être validé.
    Pour le Javascript, je sais pas comment interrompre le PostBack
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Pour le Javascript, je sais pas comment interrompre le PostBack
    return false;

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Bon, ben je patauge encore. J'ai choisi la voie du JScript, mais j'arrive pas bien à implanter le bidule.

    J'ai mis un Attribute sur le bouton et j'ai mis une Function dans le <srcipt></script>.

    Mais visiblement il ne rentre même pas dans cette fonction lorsque je clique.

    Vous n'auriez pas un squelette de code ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Que veux tu faire précisément ?

    En gros, tu vérifies qu'une checkbox est cochée avant de valider une page et de rediriger un user ?

    Jettes un coup d’œil sur ce bout de code. Peut être que ça pourrait t'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript"> var validateAcceptCondition = function(source, args){ args.IsValid = $get('<%=cbAcceptCondition.ClientID%>').checked; } </script> <asp:CustomValidator ID="cvAcceptCondition" runat="server" ClientValidationFunction="validateAcceptCondition" Text="Vous devez accepter les conditions" ValidationGroup="Condition" /> <asp:CheckBox ID="cbAcceptCondition" runat="server" Text="En cochant cette case, j'accepte les conditions ci-dessus" ValidationGroup="Condition" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protected Sub cvAcceptCondition_ServerValidate(ByVal source As Object, _ ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) _ Handles cvAcceptCondition.ServerValidate args.IsValid = cbAcceptCondition.Checked End Sub
    Enfin, lors du click sur le bouton il ne faut pas oublier de vérifier la validité du formulaire, là aussi c'est trop souvent oublié car la validation est faite côté client via JavaScript sur nos machines.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.Validate("Condition") If Page.IsValid Then ' do something here End If

  7. #7
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci Calagan99.

    Je viens de lire en détail le code que tu m'as donne. Vraiment très bien foutu comme truc.

    Sauf que, dans mon cas j'ai un gros soucis : ma checkBox n'est pas dans ma page, mais générée par un code. Et en plus, ma checkBox ne sera pas là systématiquement, lorsque je le gars à valider, ont ne lui représente plus la bestiole.

    De faite, dans tout le bout de coed dés que y a marqué "cbAcceptCondition" je sais pas quoi mettre à la place. Par contre, peut être une bon point, ma checkbox générée par du code porte le même nom, tout le temps, j'ai mis ça en dur.

    Donc là je me tape une séance d'essai avec des FindControl en pagaille, mais pour la partie Jscript, je ne vois pas comment je vais faire.

    Si tu as une idée, je suis preneur.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  8. #8
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Bon, ben c'est cool, ma séance de test a été plus courte que prévue.

    Vous allez peut être trouver ça bizarre que je sois étonné que ça marche, mais je ne m'attendais pas à ce que cela soit aussi simple.
    Je crois que j'ai encore du mal à faire la différence entre le CodeBehind et le côté HTML ou plutôt à comprendre comment on peut inclure l'un dans l'autre dans certains cas.

    Bref, voilà comment j'ai modifier la fonction JScript et ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    args.IsValid = $get('<%=CType(Me.FindControl("chkAccepte"), CheckBox).ClientID%>').checked;
    Et j'y croyais pas jusqu'au moment où j'ai cliqué et que ça a fait ce que j'attendais.

    Merci à tous.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  9. #9
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut OOOOOOOOOOOOOOppsssss
    J'ai parlé trop vite.

    Parce que, lorsque mon cod e ne génère pas la checkBox, il me dit :
    La référence d'objet n'est pas définie à une instance d'un objet.
    En s'arrêtant sur la fameuse ligne.

    Alors, est ce qu'il est possible de générer une varaible dans le CodeBehind que l'on peut appeler à la place du CType ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Un truc crade mais rapide: un try catch en JS

  11. #11
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouais, une solution un poil crade mais qui marche.
    Sauf que j'ia voulu faire mon perfectionniste de base et donc j'ai fais autrement.
    Alors, dans le détail histoire de filer du code pour les prochains.
    Toujours en partant sur la base du code qui est dans le lien que Calanga99 à filé.

    Au lieu de mettre le JScript directemetn dans la page côté HTML 'jai fais ça en CodeBehind dans le Page_Init
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "monScript", "<script type='text/javascript'>var validateAcceptCondition = function(source, args){ args.IsValid = $get('<%=CType(Me.FindControl(""chkAccepte""), CheckBox).ClientID%>').checked; }</script>")
    Et dans le cvAcceptCondition_ServerValidate j'ai mis mon test pour savoir si j'avais créé la checkBox ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If dt.Rows(0).Item("PremiereConnex") = 0 Then
    	args.IsValid = CType(Me.FindControl("chkAccepte"), CheckBox).Checked
    End If
    Et voilà, ça marche.

    Cela n'enlève rien à la valeur de la solution du Try Catch en JScript, amis je préfère gérer le biniou dans le CodeBehind pour m'assurer moins de tracas dans l'avenir.

    Merci à tous, cette fois, je boucle le topic.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  12. #12
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    jolie adaptation à ton besoin

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/06/2013, 11h42
  2. Boucle If pour une CheckBox
    Par Lord_Chesseling dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/09/2011, 14h21
  3. Bloquer la validation d'une checkbox
    Par spoker04 dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/07/2008, 11h41
  4. Message pour une checkbox créée dynamiquement
    Par g0up1l dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 30/03/2007, 12h19
  5. Réponses: 8
    Dernier message: 22/05/2006, 09h25

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