Bonjour,
Et oui c'est encore moi ... à croire que les CustomValidator me haïssent xD
Bon alors petit topo rapide : j'ai un RequireFieldValidator et un CustomValidator qui vérifie tous les deux un TextBox censé représenté le numéro d'un jour dans le mois ( allant de 1 à 31 donc ).
Voici le code de RequireFieldValidator et du CustomValidator :
J'ai donc codé le ServerValidate associé au CustomValidator ( coté serveur ) ainsi que la fonction JavaScript associé ( coté client ), que voici respectueusement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <asp:RequiredFieldValidator ID="RequiredFieldValidatorJour" runat="server" ControlToValidate="TextBoxJour" ErrorMessage="<img src="image-erreur.png"></img> Un jour doit être saisi"><img src="image-erreur.png"></img></asp:RequiredFieldValidator> <asp:CustomValidator ID="CustomValidatorJour" runat="server" ClientValidationFunction="ClientValidateJour" ControlToValidate="TextBoxJour" ErrorMessage="<img src="image-erreur.png"></img> Jour incorrect"><img src="image-erreur.png"></img></asp:CustomValidator>
Code : 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 protected void CustomValidatorJour_ServerValidate(object source, ServerValidateEventArgs args) { string element = TextBoxJour.Text; int elementInt; try { elementInt = int.Parse(element); if ( elementInt < 1 || elementInt > 31 ) { args.IsValid = false; } } catch ( Exception ex ) { args.IsValid = false; CustomValidatorJour.ErrorMessage = "<img src=\"image-erreur.png\"></img> Jour incorrect"; } }Si je clic sur mon bouton "Ajouter l'évènement", j'ai tout une méthode qui s'exécute : requête INSERT INTO, redirection sur une autre page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function ClientValidateJour(oSrc, args){ if (isNaN(args.Value) == true || args.Value < 1 || args.Value > 31) { args.IsValid = false; } }
Si le TextBox est vide, en effet, la procédure se bloque et mon message d'erreur de mon RequireFieldValidator est bien affiché dans mon ValidationSummary.
Mais pour mon CustomValidator c'est autre chose : si je met le TextBox à 0 ou à 38 par exemple, le texte du CustomValidator s'affiche dès que je passe sur un autre TextBox, mais RIEN n'est affiché dans le ValidationSummary et de surcroit, RIEN ne bloque l'exécution de ma méthode.
Soit je suis extrement nul avec les CustomValidator, soit je ni comprend plus rien ...
Un peu d'aide please
Merci de toutes réponses qui me sera utile :p
Partager