1 février 2007
4
01
/02
/février
/2007
12:23
Les controls de validation [ASP.NET 2.0]
Les controls de validation permettent de vérifier la validité des champs d’un formulaire soit à la validation du formulaire, soit en cours de saisie.
Sommaire :
1 – RequiredFieldValidator : vérifier si un champ est vide
2 - RangeValidator : vérifier que la saisie d’un champ est comprise dans un intervalle de 2 valeurs
3 - CompareValidator : comparer la valeur d’un champ par rapport à la valeur d’un autre champ ou à une valeur définie
4 - RegularExpressionValidator : comparer la valeur d’un champ par rapport à une expression régulière définie
5 – CustomValidator : définir une validation personnalisée
6 - ValidationSummary : lister l’ensemble des erreurs avec un control type « sommaire »
7 – Me.validate ou this.Validate() : valider un formulaire par programmation
8 - ValidationGroup : créer des groupes de validation pour un formulaire
1 - RequiredFieldValidator :
Rendre OBLIGATOIRE LA SAISIE OU SELECTION DANS UN CHAMP
C’est lors de l’appui sur le bouton Envoyer que l’ensemble des champs sera vérifié et les messages erreurs affichés
Glisser depuis onglet Validation de la boite à outils
- ControlToValidate : ID du contrôle à valider/vérifier
- InitialValue : c’est en fait par rapport à cette valeur qu’une comparaison sera faite (vaut "" par défaut),
Ø Si la « valeur Text du champ = InitialValue du RequiredFieldValidator »
Alors ce n’est pas validé et le texte d’erreur est rendu visible
- ErrorMessage : Message à afficher dans un contrôle ValidationSummary (ex : « votre nom »)
- Text : Messageaffiché dans le contrôle RequiredFileValidator lorsquune erreur est rencontrée (ex: « Nom requis »)
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtNom" ErrorMessage="Votre nom "> Nom requis </asp:RequiredFieldValidator> |
2 - RangeValidator :
Vérifier que la valeur d’un champ est comprise entre 2 valeurs (ou intervalle)
C’est lors de l appui sur le bouton Envoyer que l’ensemble des champs sera vérifié et les messages erreurs affichés
Glisser depuis onglet Validation de la boite à outils
- ControlToValidate : ID du contrôle à valider/vérifier
- Type : le type des valeurs vérifiées (String,...)
- MinimumValue : valeur min de l’intervalle
- MaximumValue : valeur max de l’intervalle
- ErrorMessage : Message à afficher dans un contrôle ValidationSummary (ex : « votre nom »)
- Text : Messageaffiché dans le contrôle RangeValidator lorsqu’une erreur est rencontrée (ex: « Nom requis »)
--------------------------------------------------------------------------------------------------
ATTENTION :RangeValidator ne vérifie que si la valeur saisie est comprise dans un intervalle de valeur
Mais ne sert pas à vérifier la présence d’une valeur
DONC il faut utiliser en plus un RequiredFieldValidator
--------------------------------------------------------------------------------------------------
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtAge" ErrorMessage="Age non valide" MaximumValue="100" MinimumValue="0" Type="Integer"> Age invalide </asp:RangeValidator> |
3 - CompareValidator :
On compare la valeur de 2 champs afin que ceux-ci soient strictement identiques, sinon le message d’erreur est levé
Ici c’est lors de l’événement validating que la vérification est effectuée et les messages erreurs affichés et non lors de l’appui sur le bouton Envoyer
Glisser depuis onglet Validation de la boite à outils
- ControlToValidate : ID du contrôle à valider/vérifier
- ControlToCompare : ID du contrôle dont la valeur sert de base (la valeur auquel le control à valider devra correspondre sinon message erreur affiché)
- ErrorMessage : Message à afficher dans un contrôle ValidationSummary (ex : «Email dans le champ confirmation Email»)
- Text : Messageaffiché dans le contrôle RangeValidator lorsqu’une erreur est rencontrée (ex: « Lemail saisi dans le champ confirmation ne correspond pas »)
+
- ValueCompare : permet de comparer la valeur d’un champ par rapport à la valeur
ValueCompare,ne pas donner de ControlToCompare dans ce cas mais uniquement le ControlToValidate
- Type : Type de données du champ (String,…)
---------------------------------------------------------------------------------------------------
ATTENTION :CompareValidatorne sert pas à vérifier la présence dune valeur
DONC il faut utiliser en plus un RequiredFieldValidator
---------------------------------------------------------------------------------------------------
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtEmail" ControlToValidate="txtConfirmationEmail" ErrorMessage="Email dans le champ confirmation Email"> Lemail saisi dans le champ confirmation ne correspond pas </asp:CompareValidator> |
4 - RegularExpressionValidator :
Comparer la valeur d’un champ à une expression régulière afin de la valider
C’est lors de l’appui sur le bouton Envoyer que l’ensemble des champs sera vérifié
et les messages erreurs affichés
Glisser depuis onglet Validation de la boite à outils
- ControlToValidate : ID du contrôle à valider/vérifier
- ValidationExpression : expression régulière de comparaison (prédéfinie ou personnalisée)
- ErrorMessage : Message à afficher dans un contrôle ValidationSummary (ex : «Email»)
- Text : Messageaffiché dans le contrôle RangeValidator lorsquune erreur est rencontrée (ex: «Email invalide »)
---------------------------------------------------------------------------------------------------
ATTENTION : Il faut utiliser en plus un RequiredFieldValidator si on veut vérifier la présence dune valeur
---------------------------------------------------------------------------------------------------
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="Email" ValidationExpression="w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"> Email invalide </asp:RegularExpressionValidator> |
5 - CustomValidator :
Permet de créer une validation personnalisée, on peut soit utiliser :
- l’événement ServerValidate (code-behind de la page)
- ou une fonction JavaScript appelée grace à attribut ClientValidationFunction du control CustomValidator
- Ne pas oublier d’affecter ControlToValidate :ID control à vérifier
Glisser un contrôle CustomValidator sur la page
Double cliquer sur le contrôle CustomValidator > l’événement CustomValidator1_ServerValidate est généré dans le code-behind de la page
Exemple > vérifier pour un champ code postal la longueur de la saisie :
A – dans le code-behind
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { if (args.Value.Length > 5) { // les messages erreurs de CustomValidator1 seront affichés args.IsValid = false; } else { args.IsValid = true; } } |
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtCodePostal" ErrorMessage=" Code postal"OnServerValidate="CustomValidator1_ServerValidate"> Code postal invalide </asp:CustomValidator> |
B- ou Avec une fonction JavaScript
<script type="text/javascript" language="javascript" > <!-- Function CustomValidator1_ServerValidate(source,args) { if (args.Value.Length > 5) { // les messages erreurs de CustomValidator1 seront affichés args.IsValid = false; } else { args.IsValid = true; } } //--> </script> |
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtCodePostal" ErrorMessage="Code postal"ClientValidationFunction="CustomValidator1_ServerValidate" > Code postal invalide </asp:CustomValidator> |
6 - ValidationSummary :
Permet d’afficher tel un sommaire les erreurs rencontrées sur la page (en fait liste tous les messages des propriétés ErrorMessage des contrôles non validés)
Aucune propriété particulière n’est à configurer, si ce n’est à la rigueur l’apparence :
- DisplayMode : BulletList,…
<asp:ValidationSummary ID="ValidationSummary1" runat="server" /> |
7- Me.Validate() ou this.Validate() :
Permet de forcer la validation de la page par programmation (dans le Code-Behind de la page)
Exemple C# :
protected void btnValiderFormulaire_Click(object sender, EventArgs e) { this.Validate(); if (this.IsValid == true) { lblResume.Text =this.txtNom.Text + "<BR/>" + this.txtEmail.Text; } } |
8- ValidationGroup
Créer des groupes de validation dans un formulaire
Il faut simplement régler la propriété ValidationGroup
POUR CHACUN CONTROLS (textbox,bouton validation,labels,contrôles validation)
de chaque groupe
(ex : A pour un groupe et B pour l’autre)
Exemple C#:
// Exemple : nous avons 2 groupes de validation (A et B) // Valider uniquement le groupe A this.Validate("A"); if (this.IsValid == true) { Label1.Text = "groupe A validé"; ; } // Valider tout le formulaire(tous les groupes) this.Validate(); if (this.IsValid == true) { Label1.Text = "Formulaire entier validé"; } |