Les contrôles de validation d'ASP.NET valident les données saisies par l'utilisateur pour garantir que les données inutiles, non autorisées et contradictoires ne peuvent pas être stockées.
ASP.NET fournit les aspects suivants du contrôle de validation :
RequiredFieldValidator
RangeValidateur
ComparerValidator
Validateur d'expression régulière (RegularExpressionValidator)
Validateur personnalisé (CustomValidator)
Contrôle récapitulatif de validation (ValidationSummary)
Les classes de validation héritent de la classe BaseValidator, elles héritent donc de ses propriétés et méthodes. Ainsi, l’apprentissage des propriétés et des méthodes de ce cours de base, qui constitue la base de tous les contrôles d’efficacité, sera d’une grande aide pour l’apprentissage ultérieur :
composants | décrire |
---|---|
ContrôleVersValider | Obtient ou définit le contrôle d’entrée à valider. |
Afficher | Décrivez comment les messages d'erreur sont affichés. |
ActiverClientScript | Indique si le client a adopté la vérification. |
Activé | Activez ou désactivez le validateur. |
Message d'erreur | Une chaîne décrivant l'erreur. |
Texte | Texte à afficher si la validation échoue. |
EstValide | Indique si la valeur de contrôle est valide. |
DéfinirFocusOnError | S'il faut définir le focus sur le contrôle d'entrée pertinent lorsque la validation échoue. |
Groupe de validation | Obtient ou définit le nom du groupe de validation auquel appartient ce contrôle de validation. |
Valider | Effectue une validation sur le contrôle d'entrée associé et met à jour la propriété IsValid. |
Le contrôle RequiredFieldValidator garantit que les champs obligatoires ne sont pas vides. Il est principalement lié à la zone de texte pour permettre à l'utilisateur d'entrer dans la zone de texte.
La syntaxe de ce contrôle est la suivante :
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
Le contrôle RangeValidator est chargé de vérifier si la valeur saisie se situe dans la plage prédéfinie.
Il possède trois propriétés spécifiques :
propriété | décrire |
---|---|
Taper | Il définit le type de données. Les types de données disponibles incluent : Devise, Date, Double, Entier et Chaîne. |
Valeur minimale | Il spécifie la valeur minimale dans la plage |
Valeur maximale | Il spécifie la valeur maximale dans la plage |
La syntaxe de ce contrôle est la suivante :
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
Le contrôle CompareValidator valide une valeur en fonction de la valeur entrée dans un autre contrôle d'entrée, d'une valeur numérique constante ou du type de données correct.
Il possède les propriétés spécifiques suivantes :
propriété | décrire |
---|---|
Taper | Il définit le type de données. |
ContrôleVersComparer | Il spécifie la valeur du contrôle d'entrée qui doit être comparée. |
ValeurÀComparer | Il spécifie une valeur qui ne change pas dans le contrôle d'entrée. |
Opérateur | Il spécifie l'opérateur de comparaison. Les valeurs disponibles incluent : l'égalité, l'inégalité, supérieur ou égal à, inférieur à, inférieur ou égal à et la vérification du type de données. |
La syntaxe de base de ce contrôle est la suivante :
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
Le contrôle RegularExpressionValidator vous permet de déterminer la validité d'une entrée en la faisant correspondre à une expression régulière. L'expression régulière est définie dans la propriété ValidationExpression.
Le tableau suivant résume les structures syntaxiques couramment utilisées dans les expressions régulières :
caractère d'échappement | décrire |
---|---|
b | Correspond à la touche de retour arrière. |
t | Onglet Correspondances. |
r | Correspond à la touche Entrée. |
v | Correspond aux caractères de tabulation verticale. |
f | Correspond au caractère de saut de page. |
n | Faites correspondre les nouvelles lignes. |
caractère d'échappement. |
En plus de la simple correspondance de caractères, un type de caractères peut être défini pour correspondre. Ces caractères sont appelés caractères génériques.
caractère générique | décrire |
---|---|
. | Peut correspondre à n'importe quel caractère sauf n. |
[abcd] | Peut correspondre à n’importe quel personnage de l’ensemble. |
[^abcd] | Excluez tout personnage de l’ensemble. |
[2-7a-mA-M] | Correspond à n’importe quel caractère dans une plage spécifique. |
w | Correspond à n’importe quel groupe de caractères alphanumériques et au trait de soulignement. |
W | Correspond à n'importe quel caractère autre qu'un mot. |
s | Faites correspondre les caractères tels que les espaces, les taquets de tabulation, les nouvelles lignes, etc. |
S | Correspond à n'importe quel caractère autre qu'un espace. |
d | Correspond à n'importe quel caractère décimal. |
D | Correspond à n'importe quel caractère non décimal. |
Les quantificateurs peuvent indiquer un nombre spécifique de mots dans lesquels un caractère apparaît.
quantificateur | décrire |
---|---|
* | Zéro ou plusieurs correspondances. |
+ | Un ou plusieurs matchs. |
? | Zéro ou une correspondance. |
{N} | N correspondances. |
{N,} | N ou plusieurs correspondances. |
{N,M} | Correspondance entre N et M. |
La syntaxe de base de ce contrôle est la suivante :
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
Le contrôle CustomValidator permet d'écrire des routines de validation spécifiques côté client et serveur pour valider les valeurs.
La validation du client est effectuée de manière appropriée via ClientValidationFunction. Les routines de validation côté client doivent être écrites dans un langage de script compris par le navigateur, tel que JavaScript ou VBScript.
Les routines de validation côté serveur doivent être générées par le gestionnaire d’événements ServerValidate du contrôle. Les routines de validation côté serveur doivent être écrites dans n'importe quel langage .Net, tel que C# ou VB.Net.
La syntaxe de base de ce contrôle est la suivante :
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
Le contrôle ValidationSummary n'effectue aucune validation mais affiche un récapitulatif de toutes les erreurs sur la page. Ce résumé affiche les valeurs de la propriété ErrorMessage de tous les contrôles de validation ayant échoué.
Les deux listes d'attributs mutuellement inclusives suivantes répertorient les messages d'erreur :
ShowSummary : affiche les informations sur l'erreur dans un format spécial.
ShowMessageBox : Afficher les messages d'erreur dans une fenêtre séparée.
La syntaxe de base de ce contrôle est la suivante :
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
Les pages complexes contiendront différents ensembles d’informations à différents niveaux. Dans ce cas, différents groupes auront des vérifications différentes. Cette situation peut être résolue en utilisant des groupes de vérification.
Pour créer un groupe de validation, vous devez placer le contrôle d'entrée et le contrôle de validation dans le même groupe logique en définissant leurs propriétés ValidationGroup.
L'exemple suivant décrit un formulaire en quatre parties qui sera rempli par l'ensemble de l'école pour se présenter à la présidence. Ici, nous utiliserons des contrôles de validation pour valider ce que l'utilisateur a saisi.
Voici à quoi cela ressemble en mode Création :
Le code de cette partie est le suivant :
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="Formulaire d'élection du président : Choisissez votre président" runat="server" /> </td> </tr> <tr> <td> Candidat : </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>Veuillez choisir un candidat</asp:ListItem> <asp:ListItem>MH Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</ asp:ListItem> <asp:ListItem>Vénus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Veuillez choisir un candidat" InitialValue="Veuillez choisir un candidat"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> Maison : </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Rouge</asp:ListItem> <asp:ListItem>Bleu</asp:ListItem> <asp:ListItem>Jaune</asp:ListItem> <asp:ListItem>Vert</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Entrez le nom de votre maison" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> Classe : </td> <td> <asp:TextBox ID="txtclass " runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Entrez votre classe (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> E-mail : </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Entrez votre email" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text= "Soumettre" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Erreurs :" /></form>
Le code du bouton Soumettre est le suivant :
protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Merci" } else { lblmsg.Text = "Remplissez tous les champs" }}