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

  1. Ajoutez un contrôle CompareValidator à la page et définissez les propriétés suivantes :

    Propriété

    Description

    ControlToValidate

    L'ID du contrôle pour lequel l'utilisateur doit fournir une valeur.

    ErrorMessage, Text, Display

    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.

  2. Définissez la valeur de comparaison en définissant les propriétés suivantes :

    Propriété

    Description

    ValueToCompare

    - ou -

    ControlToCompare

    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.

    Type

    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.

    Operator

    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.

  3. 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

Autres ressources

Contrôles ASP.NET de validation