Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

CompareValidator et RangeValidator - validité d'un entier, d'un nombre à virgule ...

Dans la lignée de mes posts sur la validation d'une checkboxlist et la validation d'une checkbox, voici un post qui vous explique comment utiliser les contrôles CompareValidator et RangeValidator afin de vous assurer que l'utilisateur saisisse bien un nombre, qu'il soit compris entre tel et tel valeur etc...

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" />


Ces validateurs ne testent pas la présence de la valeur, seulement que la valeur est correct. Pour rendre obligatoire une valeur il faut impérativement utiliser un RequiredFieldValidator. Par défaut ASP.net ne vérifie pas les valeurs, il faut impérativement vérifier que la page est valide avant de faire toute action :

Page.Validate("validationGroupName"); if (Page.IsValid) { // les valeurs sont OK }

Ensuite vous pouvez sans risque faire un XXX.Parse pour récuperer la bonne valeur.

Enfin, pour rappel, les validators ne sont pas compatibles avec les UpdatePanels, mais j'ai déjà expliqué comment rendre les validators compatibles avec les UpdatePanels.

Posted: mardi 16 octobre 2007 03:02 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29

- AutoSPInstaller pour SharePoint 2013 maintenant disponible en “RTM” par Julien Chable le 05-06-2013, 23:30

- [TFS2010] A la recherche du Shelveset perdu par Blog de Jérémy Jeanson le 05-03-2013, 21:46

- .NET / Debug post-mortem : obtenir le fichier mscordacwks.dll correspondant à un dump quand on n'a plus d'accès direct à ce fichier par CoqBlog le 04-28-2013, 19:57

- [W8] Afficher un graphe par CPU dans le gestionnaire des tâches par Blog de Jérémy Jeanson le 04-28-2013, 17:48

- [WCF] Limiter proprement l’accès à vos ressources serveur par Blog de Jérémy Jeanson le 04-26-2013, 22:59

- Event : Je serai speaker à la Conf’SharePoint par Blog Technique de Romelard Fabrice le 04-26-2013, 12:00