¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
BaseValidator (Clase)
Collapse the table of content
Expand the table of content

BaseValidator (Clase)

Sirve como clase base abstracta para controles de validación.

Espacio de nombres: System.Web.UI.WebControls
Ensamblado: System.Web (en system.web.dll)

public abstract class BaseValidator : Label, IValidator
public abstract class BaseValidator extends Label implements IValidator
public abstract class BaseValidator extends Label implements IValidator
No aplicable.

La clase BaseValidator proporciona la implementación básica de todos los controles de validación. Los controles de validación permiten validar los datos proporcionados por el usuario en un control de entrada asociado. Cuando el usuario especifica un valor que produce un error en la validación, el control de validación muestra un mensaje de error. Dado que el control de validación está separado del control de entrada, puede situar el mensaje de error en cualquier posición de la página relativa al control de entrada. ASP.NET proporciona varios controles de validación que realizan tipos específicos de validación. En la siguiente tabla se describen estos controles.

Control de validación

Descripción

CompareValidator

Valida un valor con respecto al valor especificado en otro control de entrada, con respecto a un valor constante o con respecto a un tipo de datos correcto, estableciendo la propiedad CompareValidator.Operator en ValidationCompareOperator.DataTypeCheck.

CustomValidator

Valida un valor mediante una rutina de validación personalizada proporcionada por usuario.

RangeValidator

Valida si un valor está dentro de un intervalo de valores.

RegularExpressionValidator

Valida un valor mediante una expresión regular.

RequiredFieldValidator

Valida que un valor se especificó en un campo necesario.

Los controles de validación siempre validan el control de entrada asociado en el servidor. Los controles de validación también tienen una implementación completa en el cliente que permite a los exploradores con secuencias de comandos habilitadas (como Microsoft Internet Explorer versión 4.0 o posterior) realizar la validación en el cliente. La validación en el cliente mejora el proceso de validación, ya que se comprueba la entrada del usuario antes de enviarla al servidor. De este modo se pueden detectar los errores en el cliente antes de enviar el formulario y se evita el recorrido de ida y vuelta de la información necesaria para la validación en el servidor.

Se pueden utilizar varios controles de validación con un control de entrada individual para validar diferentes criterios. Por ejemplo, puede aplicar varios controles de validación en un control TextBox. Se puede utilizar un control RangeValidator para garantizar que el valor especificado en el control TextBox está dentro del intervalo especificado, y un control RequiredFieldValidator para garantizar que el usuario especifica un valor.

ASP.NET proporciona muchos controles que tienen la capacidad para devolver datos al servidor. Si la propiedad CausesValidation de uno de estos controles está establecida en true, se realiza la validación cuando el control devuelve datos al servidor. Los controles siguientes tienen capacidad para devolver datos al servidor:

NotaNota:

Algunos de estos controles devuelven datos al servidor sólo si la propiedad AutoPostBack está establecida en true.

Estos controles tienen una propiedad ValidationGroup que, cuando está establecida, valida únicamente los controles de validación contenidos en el grupo especificado cuando el control desencadena una devolución de datos al servidor. Para agrupar los controles de validación, establezca la propiedad ValidationGroup de todos los controles de validación en el mismo valor.

Para asociar un control de entrada a un control de validación, utilice la propiedad ControlToValidate. Utilice la propiedad Text para especificar el texto mostrado en un control de validación cuando se produce un error en la validación. También puede mostrar un resumen de todos los controles que producen errores de validación en la página, utilizando un control ValidationSummary. Para especificar el texto que se muestra en un control ValidationSummary, utilice la propiedad ErrorMessage.

NotaNota:

Si establece la propiedad ErrorMessage sin establecer la propiedad Text, el valor de la propiedad ErrorMessage también se muestra en el control de validación.

Cuando utilice controles de validación, compruebe siempre los resultados de validación en el servidor antes de realizar cualquier procesamiento. Después de una devolución de datos, pero antes de que se llame a sus métodos de evento, la página llama a los controles de validación y agrega sus resultados a la propiedad Page.IsValid. (También puede llamar a los controles de validación utilizando explícitamente el método Validate.) En su propio código, antes de procesar la entrada, compruebe si la propiedad Page.IsValid devuelve true. A pesar de que los exploradores con las secuencias de comandos habilitadas pueden impedir la devolución de datos en el cliente si un control de validación produce un error, antes de procesar los datos validados, compruebe siempre también Page.IsValid en el código del servidor.

También puede realizar manualmente la validación. Para validar todos los controles de validación en la página, utilice el método Page.Validate. Los controles de validación individuales pueden validarse mediante el método Validate del control.

NotaNota:

Si utiliza la propiedad Page.IsValid en un método Page_Load, deberá llamar primero explícitamente al método Page.Validate. Dado que la validación se realiza después del evento Control.Load para la página, pero antes del controlador de eventos para los eventos Click o Command, la propiedad Page.IsValid no se actualiza mientras no se llama al método Page.Validate. Como alternativa, puede colocar el código en el controlador de eventos para el evento Click o Command en lugar del método Page_Load.

No todos los controles de servidor Web admiten los controles de validación. Los controles estándar que se pueden validar con un control de validación son:

NotaNota:

Para que un control de entrada se valide, debe aplicarse el atributo System.Web.UI.ValidationPropertyAttribute al control.

Si se produce un error en la validación, puede establecer el foco en el control de entrada asociado, estableciendo la propiedad SetFocusOnError en true.

Para obtener una lista con los valores de propiedad iniciales de una instancia de BaseValidator, vea el constructor BaseValidator.

Accesibilidad

Es posible que el marcado que se representa de manera predeterminada para este control no respete los estándares de accesibilidad enunciados en las directrices prioritarias de WCAG (Instrucciones de accesibilidad a contenido Web 1.0). Para obtener detalles sobre accesibilidad compatible con este control, vea Controles y accesibilidad en ASP.NET.

Notas para los herederos: Al heredar de la clase BaseValidator, es necesario reemplazar el miembro EvaluateIsValid.

En el ejemplo de código siguiente se muestra cómo usar varios controles de validación para comprobar que el usuario especifica un valor válido en un control TextBox.

Nota de seguridadNota: de seguridad

Este ejemplo tiene un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas Web ASP.NET validan que los datos proporcionados por el usuario no incluyen elementos HTML ni de secuencia de comandos. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
 
  void Button_Click(Object sender, EventArgs e) 
  {
    if (Page.IsValid)
    {
      MessageLabel.Text = "Page submitted successfully.";
    }
    else
    {
      MessageLabel.Text = "There is an error on the page.";
    }
  }
 
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Validator Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>Validator Example</h3>
     
      Enter a number from 1 to 10.
      <asp:textbox id="NumberTextBox" 
        runat="server"/>

      <asp:rangevalidator id="NumberCompareValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"  
        type="Integer"
        display="Dynamic" 
        errormessage="Please enter a value from 1 to 10."
        maximumvalue="10"
        minimumvalue="1"  
        text="*"
        runat="server"/>

      <asp:requiredfieldvalidator id="TextBoxRequiredValidator" 
        controltovalidate="NumberTextBox"
        enableclientscript="False"
        display="Dynamic" 
        errormessage="Please enter a value."
        text="*"
        runat="server"/>

      <br /><br />

      <asp:button id="SubmitButton"
        text="Submit"
        onclick="Button_Click"
        runat="server"/>
 
      <br /><br />
       
      <asp:label id="MessageLabel" 
        runat="server"/>

      <br /><br />

      <asp:validationsummary
        id="ErrorSummary"
        runat="server"/>
 
    </form>
  </body>
</html>


Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
Mostrar:
© 2015 Microsoft