Cómo: Validar con respecto a un valor específico para controles de servidor ASP.NET

Actualización: noviembre 2007

Con los controles de validación de ASP.NET se puede validar la entrada de un usuario con respecto a un valor concreto utilizando los operadores lógicos. Por ejemplo, puede especificar que la entrada del usuario sea una fecha posterior a 1 de enero de 1950 o que sea un valor entero mayor o igual que cero. También puede especificar que la entrada del usuario se compare con un valor de otro control.

e303tf05.alert_security(es-es,VS.90).gifNota de seguridad:

Los datos proporcionados por un usuario en las páginas Web ASP.NET pueden incluir secuencias de comandos de cliente malintencionadas. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

Para validar con un valor específico

  1. Agregue un control CompareValidator a la página y establezca las propiedades siguientes:

    Propiedad

    Descripción

    ControlToValidate

    El Id. del control para el que el usuario debe proporcionar un valor.

    ErrorMessage, Text, Display

    Propiedades que especifican el texto y ubicación del error o errores que aparecerán si el usuario omite el control. Para obtener información detallada, vea Cómo: Controlar la presentación de los mensajes de error de validación para los controles de servidor ASP.NET.

  2. Para definir el valor que se va a comparar, establezca las siguientes propiedades:

    Propiedad

    Descripción

    ValueToCompare

    O bien

    ControlToCompare

    Expresión especificada como una cadena. Para comparar con un valor constante, establezca la propiedad ValueToCompare. Para realizar una comparación con respecto al valor de otro control, establezca la propiedad ControlToCompare en el Id. de ese control. (El control CompareValidator compara la entrada del usuario con la propiedad que haya especificado ValidationPropertyAttribute del otro control). Si define las dos propiedades, ValueToCompare y ControlToCompare, ControlToCompare tiene prioridad.

    Type

    El tipo de datos de los dos valores que se van a comparar. Los tipos se especifican mediante la enumeración ValidationDataType, que permite utilizar el nombre de tipo String, Integer, Double, Date o Currency. Los valores se convierten a este tipo antes de realizar la comparación. Para obtener más información, vea Cómo: Validar con respecto a un tipo de datos para controles de servidor ASP.NET.

    Operator

    Comparación que se va a utilizar. Especifique un operador utilizando uno de los valores siguientes definido en la enumeración ValidationCompareOperator:

    e303tf05.alert_note(es-es,VS.90).gifNota:

    Cuando se realiza la validación en otro control, los valores no válidos del otro control se omiten y se pasa la validación. Para obtener información detallada, vea Resultados de la validación de casos especiales para controles de servidor ASP.NET.

  3. Agregue una prueba al código para comprobar su validez. Para obtener información detallada, vea Cómo: Probar mediante programación la validez de controles de servidor ASP.NET.

    En el ejemplo de código siguiente se muestra un control TextBox validado mediante el control CompareValidator.

    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" runat="server"></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" runat="server"
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    
    

    En el siguiente ejemplo de código se muestra un control CompareValidator que compara la entrada del usuario con un valor de otro control. La página permite a los usuarios realizar reservas en un hotel. El validador comprueba que el usuario no escriba una fecha de salida anterior a la fecha de llegada. En una aplicación real, la fecha de salida debe requerirse y validarse también como una fecha.

    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" runat="server"></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" runat="server"></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" runat="server"
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    
    

Adiciones de comunidad

Mostrar: