Comment : valider par rapport à une valeur spécifique pour les contrôles serveur ASP.NET
Mise à jour : novembre 2007
À l'aide des contrôles de validation ASP.NET, vous pouvez valider une entrée d'utilisateur par rapport à une valeur spécifique à l'aide d'opérateurs logiques. Vous pouvez, par exemple, spécifier que l'entrée d'utilisateur est une date ultérieure au 1er janvier 1950 ou qu'elle est une valeur entière supérieure ou égale à zéro. Vous pouvez également spécifier que l'entrée d'utilisateur doit être comparée à une valeur d'un autre contrôle.
Note de sécurité : |
---|
Les entrées d'utilisateur dans les pages Web ASP.NET peuvent inclure un script client nuisible. Pour plus d'informations, consultez Vue d'ensemble des attaques de script. |
Pour effectuer une validation par rapport à une valeur spécifique
Ajoutez un contrôle CompareValidator à la page et définissez les propriétés suivantes :
Propriété
Description
L'ID du contrôle pour lequel l'utilisateur doit fournir une valeur.
Propriétés spécifiant le texte et l'emplacement des erreurs qui s'afficheront si l'utilisateur ignore le contrôle. Pour plus d'informations, consultez Comment : contrôler l'affichage des messages d'erreur de validation pour les contrôles serveur ASP.NET.
Définissez la valeur de comparaison en définissant les propriétés suivantes :
Propriété
Description
- ou -
Une expression entrée en tant que chaîne. Pour la comparer à une valeur de constante, définissez la propriété ValueToCompare. Pour la comparer à la valeur d'un autre contrôle, définissez la propriété ControlToCompare avec l'ID de ce contrôle. (Le contrôle CompareValidator compare l'entrée d'utilisateur à la propriété, quelle qu'elle soit, spécifiée par l'objet ValidationPropertyAttribute de l'autre contrôle). Si vous définissez les deux propriétés, ValueToCompare et ControlToCompare, ControlToCompare est prioritaire.
Le type de données des deux valeurs à comparer. Les types sont spécifiés à l'aide de l'énumération ValidationDataType, qui vous permet d'utiliser le nom de type String, Integer, Double, Date ou Currency. Les valeurs sont converties en ce type avant que la comparaison ne soit effectuée. Pour plus d'informations, consultez Comment : valider par rapport à un type de données pour les contrôles serveur ASP.NET.
La comparaison à utiliser. Spécifiez un opérateur qui utilise l'une des valeurs suivantes définies dans l'énumération ValidationCompareOperator :
Remarque : Lorsque la validation est effectuée par rapport à un autre contrôle, les valeurs non valides de l'autre contrôle sont ignorées et la validation réussit. Pour plus d'informations, consultez Résultats de la validation dans des cas particuliers pour les contrôles serveur ASP.NET.
Ajoutez un test dans votre code afin de vérifier la validité. Pour plus d'informations, consultez Comment : tester par programme la validité pour les contrôles serveur ASP.NET.
L'exemple de code suivant illustre un contrôle TextBox validé à l'aide d'un contrôle CompareValidator :
<table> <tr> <td> <asp:Textbox id="txtAge" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareFieldValidator1" ForeColor="Red" ControlToValidate="txtAge" ValueToCompare="0" Type="Integer" Operator="GreaterThanEqual" ErrorMessage="Please enter a whole number zero or greater."> </asp:CompareValidator > </td> </tr> </table>
<table> <tr> <td> <asp:Textbox id="txtAge" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareFieldValidator1" ForeColor="Red" ControlToValidate="txtAge" ValueToCompare="0" Type="Integer" Operator="GreaterThanEqual" ErrorMessage="Please enter a whole number zero or greater."> </asp:CompareValidator > </td> </tr> </table>
L'exemple de code suivant illustre un contrôle CompareValidator qui compare l'entrée d'utilisateur à la valeur d'un autre contrôle. La page permet aux utilisateurs d'effectuer une réservation dans un hôtel. Le validateur vérifie que l'utilisateur n'entre pas une date de départ antérieure à la date d'arrivée. (Dans une application réelle, la date de départ serait requise et validée comme date.)
<table> <tr> <td> Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox> Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareValidator1" ForeColor="Red" ControlToValidate="txtDepartureDate" ControlToCompare="txtArrivalDate" Type="Date" Operator="GreaterThanEqual" ErrorMessage="Departure date cannot be earlier than arrival date."> </asp:CompareValidator > </td> </tr> </table>
<table> <tr> <td> Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox> Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareValidator1" ForeColor="Red" ControlToValidate="txtDepartureDate" ControlToCompare="txtArrivalDate" Type="Date" Operator="GreaterThanEqual" ErrorMessage="Departure date cannot be earlier than arrival date."> </asp:CompareValidator > </td> </tr> </table>
Voir aussi
Concepts
Types de validation pour les contrôles serveur ASP.NET