Como: Validar contra um valor específico para controles de servidor ASP.NET

Usando controles de validação do ASP.NET, você pode validar uma entrada de usuário em relação a um valor específico usando operadores lógicos.Por exemplo, você pode especificar que a entrada do usuário é uma data após 1° de janeiro, 1950 ou que ela é um valor inteiro maior ou igual a zero.Como alternativa, você pode especificar que a entrada de usuário seja comparada com um valor de outro controle.

Observação de segurança:

A entrada de usuário em páginas da Web ASP.NET pode incluir script de cliente possivelmente mal-intencionado.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

Para validar em relação um valor específico

  1. Adicione um controle CompareValidator para a página e defina as seguintes propriedades:

    Propriedade

    Descrição

    ControlToValidate

    A identificação do controle (ID) para o qual o usuário deve fornecer um valor.

    ErrorMessage, Text, Display

    Propriedades que especificam o texto e a localidade do erro ou erros que aparecerá se o usuário ignora o controle.Para obter detalhes, consulte:Como: Controle validação erro mensagem Display for ASP.NET servidor Controls.

  2. Defina o valor a ser comparado, definindo as propriedades a seguir:

    Propriedade

    Descrição

    ValueToCompare

    - ou -

    ControlToCompare

    Uma expressão inserida como uma sequência de caracteres.Para comparar com um valor constante, defina a propriedade ValueToCompare.Para comparar com o valor de outro controle, defina a propriedade ControlToCompare como a identificação do controle.(O controle CompareValidator compara a entrada do usuário contra qualquer propriedade que seja especificada de outro ValidationPropertyAttribute do controle).Se você definir tanto ValueToCompare quanto ControlToCompare, ControlToCompare terá precedência.

    Type

    O tipo de dados dos dois valores a serem comparados.Os tipos são especificados usando a enumeração ValidationDataType, que permite que você use o nome de tipo String, Integer, Double, Date, ou Currency.Os valores são convertidos nesse tipo antes da comparação ser executada.Para obter mais informações, consulte Como: Validar contra um tipo de dados para controles de servidor ASP.NET.

    Operator

    A comparação a ser usada.Especifique um operador usando um dos seguintes valores definidos na enumeração ValidationCompareOperator:

    Observação:

    Valores inválidos no outro controle são ignorados quando a validação é feita com um outro controle, e a validação passa.Para obter detalhes, consulte:Resultados de validação de casos especiais para controles do servidor ASP.NET.

  3. Adicione um teste em seu código para verificar se há validade.Para obter detalhes, consulte:Como: Testar a validade por programação controles de servidor ASP.NET.

    O exemplo de código a seguir mostra um controle TextBox validado usando um controle 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>
    

    O exemplo de código a seguir mostra um CompareValidator que compara a entrada com relação ao valor de outro controle do usuário.A página permite aos usuários fazerem reservas em um hotel.O validador checa para que o usuário não insira uma data de partida anterior à data de chegada.(Em um aplicativo real, a data de partida seria necessária e validada como uma data também.)

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

Consulte também

Conceitos

Tipos de validação para controles de servidor do ASP.NET

Outros recursos

Controles de Validação do ASP.NET