Validation d'un nombre entier :
<asp:label runat="server" AssociatedControlID="tbInteger" Text="Nombre entier" /> <asp:TextBox runat="server" ID="tbInteger" /> <asp:CompareValidator runat="server" ControlToValidate="tbInteger" Type="Integer" Operator="DataTypeCheck" Text="*" />
Vérifie que le nombre saisit est compris entre int.MinValue et int.MaxValue.
Validation d'un nombre à virgule :
<asp:Label runat="server" AssociatedControlID="tbDouble" Text="Nombre à virgule" /> <asp:TextBox ID="tbDouble" runat="server" /> <asp:CompareValidator runat="server" ControlToValidate="tbDouble" Operator="DataTypeCheck" Text="*" Type="Double" />
Vérifie que le nombre est compris entre Double.MinValue et Double.MaxValue. La virgule est dépendante de la culture du thread en cours. Cette culture se spécifie dans le web.config
<globalization culture="fr-FR" uiCulture="fr-FR">
Vous pouvez aussi mettre auto comme value, dans ce cas là, la culture sera suivant la configuration du navigateur.
Validation d'une date :
<asp:Label runat="server" AssociatedControlID="tbDate" Text="Date" /> <asp:TextBox ID="tbDate" runat="server" /> <asp:CompareValidator runat="server" ControlToValidate="tbDate" Operator="DataTypeCheck" Text="*" Type="date" />
Là encore le format de la date sera suivant la culture en cours. N'oubliez pas d'utiliser le contrôle Calendar des Ajax toolkits, ce sera beaucoup plus agréable pour l'utilisateur.
Validation d'une valeur par rapport à une autre valeur fixe :
Comme son nom l'indique, le CompareValidator peut aussi vérifier qu'une valeur est inférieure, supérieure à une autre ...<asp:Label runat="server" AssociatedControlID="tbCompare" Text="Comparaison" /> <asp:TextBox ID="tbCompare" runat="server" /> <asp:CompareValidator runat="server" ControlToValidate="tbCompare" ValueToCompare="5" Operator="LessThan" Text="*" Type="Integer" />
Les opérateurs disponibles sont LessThan, LessThanEqual, NotEqual, Equal, GreaterThan, GreaterThanEqual. Vous pouvez faire la même chose avec le type Date, Double, String. Dans le cas d'une comparaison avec un String ce sera la méthode String.Compare qui sera utilisé, pour la plupart des cultures, c'est l'ordre alphabétique qui est pris en compte.
Validation d'une valeur via un interval de valeur fixe :
On utilise cette fois-ci le RangeValidator :<asp:Label runat="server" AssociatedControlID="tbCompare2" Text="Comparaison 2" /> <asp:TextBox ID="tbCompare2" runat="server" /> <asp:RangeValidator runat="server" ControlToValidate="tbCompare2" MinimumValue="01/01/2007" MaximumValue="31/12/2007" Type="Date" Text="*" />
Là encore on peut tester les dates, les entiers, les nombres à virgules et les strings, les comparaisons se feront suivant la culture actuelle.
Validation d'une valeur par rapport à une autre valeur définit par l'utilisateur :
Lorsque vous utilisez un CompareValidator avec la propriété ValueToCompare vous pouvez la remplacer par la propriété ControlToCompare afin de laisser le choix à l'utilisateur sur quel valeur il doit comparer. C'est ce qu'on utilise lorsqu'on veut vérifier que 2 mots de passe sont identiques.
<asp:Label runat="server" AssociatedControlID="tbCompare" Text="Comparaison" /> <asp:TextBox ID="tbCompare" runat="server" /> <asp:TextBox ID="tbCompare2" runat="server" /> <asp:CompareValidator runat="server" ControlToValidate="tbCompare" ControlToCompare="tbCompare2" Operator="LessThan" Text="*" Type="Integer" />