Vous êtes sur la page 1sur 20

LES CONTRLES DE VALIDATION

Ralise par :
karim
1

LES CONTRLES DE VALIDATION


Sommaire 1. La validation.. 3 1.1 RequiredFieldValidator 4 1.2 CompareValidator. 7 1.3 RangeValidator........11 1.4 RegularExpressionValidator....... 13 1.5 CustomValidator........ 15 1.6 ValidatonSummary 20 1.7 ValidationGroup.. 23 1.8 Proprit CausesValidation. 24

1 . LA VALIDATION
Il existe dans le Framework des contrles ddis la validation. C'est--dire quil existe des contrles permettant, par exemple, la vrification des champs dun formulaire : si le champ est vide, si les deux mots de passe correspondent, si le champ correspond aux expressions rgulires, etc. Ils nous permettent de vrifier du ct du client les informations quil va envoyer. Ce qui nempche pas de vrifier du ct serveur les informations envoyes par le client puisquil est tout fait possible de contourner ces vrifications. Cela tant, ce sont des Controls dj prt lemploi qui permettent de gagner du temps lors du dveloppement.
3

1.1 REQUIREDFIELDVALIDATOR
Le RequiredFieldValidator oblige lutilisateur ne pas laisser le champ cibl vide. Lexemple ci-dessous affiche une TextBox o lon doit rentrer son nom. Si la zone de texte est vide alors il ne passera pas la validation, le formulaire ne sera pas envoy et par consquent il ny aura pas de PostBack. Pour lier ce contrle un champ, il faut remplir la proprit ControlToValidate avec lID du champ vrifier. La proprit Text correspond au message afficher si le contrle ne passe pas la validation. Attention : le texte va safficher lendroit o se trouve le contrle de validation et non pas aprs le contrle valider. Pour quil saffiche juste aprs il faut donc mettre le contrle de validation juste aprs le contrle quil valide.

EXEMPLE

En revanche si on clic sur le bouton sans avoir mis de valeur dans la TextBox, le message derreur sera affich, comme saisi un valeur svp!! .

1.2 COMPAREVALIDATOR
Ce contrle de validation va nous permettre de comparer un champ une valeur ou un autre champ. L encore on doit utiliser la proprit ControlToValidate tout comme le RequiredFieldValidator. ControlToCompare est une proprit prenant comme valeur lID du contrle avec lequel il sera compar (par exemple une autre TextBox pour rentrer le mot de passe). Par dfaut il vrifiera si les deux champs sont gaux (Equal). On peut changer ceci avec la proprit Operator. Il peut prendre plusieurs valeurs comme le montre limage.
6

Oprations Compare Validation

EXEMPLE 1

Comparer les champs de mot de passe . gaux au non

EXEMPLE 2

Vrifier si lage est suprieure au gale 18 ans

EXEMPLE 3

Vrifier si lage est de type entier au non

10

1.3 RANGEVALIDATOR
Ce contrle de validation permet de dfinir deux valeurs entre lesquelles doit se trouver la valeur entre dans le contrle valider. Ca peut tre pratique par exemple pour un ge, un code postal . Les deux proprits connaitre pour ce contrle sont MaximumValue et MinimumValue, respectivement la valeur maximum et la valeur minimum. Ce contrle utilise lui aussi la proprit Type.

11

EXEMPLE

Vrifier si lage entre 20 et 30

12

1.4 REGULAREXPRESSIONVALIDATOR
Ce contrle permet dutiliser des expressions rgulires pour valider un champ.

13

EXEMPLE

Vrifier la syntaxe demail

14

1.5 CUSTOMVALIDATOR
Le CustomValidator va nous permettre de crer notre propre validateur. Il y a deux faons de le faire : avec du javascript ou avec du CodeBehind. Si on utilise du JavaScript dans la page ASPX il va falloir utiliser la proprit ClientValidationFunction du CustomValidator. Avec le CodeBehind on utilise lvnement OnServerValidate pour mettre le nom de la fonction utiliser. La mthode va recevoir deux arguments, la premire est la source, la seconde est de type ServerValidateEventArgs. Cest avec laccesseur IsValid de ce dernier que lon va pouvoir dfinir si les conditions sont rempli ou non. On peut dailleurs utiliser cette proprit dans les autres contrles depuis le code behind sur lobjet Page. On pourra dfinir, par exemple, lors dun clic sur un bouton (donc avec un PostBack) si on veut effectuer certaines action.

15

Pour cela, on lutilise souvent sur lvnement onClick dun bouton avec un if (ce qui permet de dire que lon effectuera les actions du if que si la page est valide ou si elle ne lest pas ; ceci dpendant de lexpression que lon met). Dans le cas du CustomControl on peut avoir un problme li lvnement onClick du bouton qui valide le formulaire. Nous verrons la fin de cette partie comme rgler ce problme avec laccesseur IsValid. Une chose importante avoir lesprit est que le JavaScript sexcutera du cot client alors que le CodeBehind, lui, ne sera excut que lors du PostBack de la page. Une fois que lutilisateur aura valid, la page sera envoye au serveur qui vrifiera les donnes. Ensuite le serveur validera notre formulaire ou bien retournera des messages derreur.

16

EXEMPLE
Protected Sub Verif_Pseudo ( ByVal source As Object , ByVal args As ServerValidateEventArgs) ' Mthode de vrification du pseudo args.IsValid = False ' Par dfaut le champ ne passe pas la validation If args.Value.Length <= 3 Then 'Si la taille de la valeur du champ est infrieure ou gale trois CustValidator.Text = "Il faut plus de 3 " ' Alors on change le message de validation grce lid du CustolValidator ElseIf args.Value.Length >= 10 Then 'Si la taille de la valeur du champ est suprieure ou gale dix CustValidator.Text = "Il faut moins de 10 'On change aussi le message ElseIf args.Value.Length > 3 And args.Value.Length < 10 Then ' Si la taille de la valeur est (strictement) comprise entre 3 et 10 args.IsValid = True ' Alors le champ passe la validation End If End Sub
17

EXCUTION
<asp:TextBox runat="server" /> <asp:CustomValidator ID="CustValidator" ControlToValidate="TextBox1" onservervalidate="Verif_Pseudo" runat="server" ErrorMessage="CustomValidator"> </asp:CustomValidator> <asp:Button ID="Button1" runat="server" Text="Button" />
Limage ci-contre montre le rsultat si on rentre un texte plus long ou gal 10 caractres. Remarquez que le message de validation bien chang. Une autre chose remarquer est que si on ne met rien dans le champ il passe quand mme la validation malgr le if qui inclut pourtant les tailles infrieure 3.

18

Maintenant que nous avons vu la cration dun CustomControl, nous allons voir comment grer lvnement onClick du bouton. Il est donc important avant dexcuter du code avec lvnement onClick de vrifier si le formulaire est bien valide. Pour cela on peut aussi vrifier que la page elle-mme est valide avec Page.IsValid. Comme nous lavions vu IsValid va retourner un boolen qui va nous permettre, dans ce cas, de savoir si la page est valide ou non. Protected Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) If Not Page.IsValid Then Return End If Button1.Text = TextBox1.Text End Sub
19

1.6 VALIDATONSUMMARY
Le contrle ValidationSummary est un contrle qui va vous permettre dafficher un sommaire, un rsum, de tous ce qui na pas t valid. Le texte qui y sera affich sera celui de la proprit ErrorMessage que nous navions pas utilis jusque l. Il faut savoir que si on ne spcifie pas la proprit Text, elle prendra la valeur de la proprit ErrorMessage. En revanche si on ne dfini que la proprit Text, la proprit ErrorMessage sera vide et ne prendra pas Text comme message par dfaut. Ce contrle de validation va afficher la proprit ErrorMessage de chaque contrle de validation qui ne sera pas valid (du moins du moment quil a une dfinition de la proprit ErrorMessage comme nous allons le voir dans lexemple qui suit).
20