Controles de Validación en Asp .NET
Capturar lo tecleado por el usuario y comprobar si los datos proporcionados son correctos de acuerdo con la información solicitada es lo que llamamos validación. La tecnología Asp .NET nos proporciona una manera sencilla de validar lo tecleado por el usuario en los formularios Web. Recurre a controles de validación de varios tipos, capaces de realizar comprobaciones útiles como:
- Dejar en blanco un campo obligatorio (controles de campo requerido)
- Las contraseñas escritas 2 veces no coinciden (controles de comparación)
- Lo tecleado se sale de un rango o difiere de un valor o es igual a un valor (controles de comparación)
- Lo tecleado se adapta a un patrón determinado (controles de expresiones regulares)
Estos controles llevan a cabo la validación (controles Validation) en el servidor. También es posible validar en el cliente gracias a código JavaScript y, en muchas ocasiones, ello puede ser válido para nuestros propósitos, pero la validación en el servidor es necesaria para tareas más complejas en las que la seguridad adquiere mayor importancia, y Asp .NET tiene un mecanismo sencillo para realizarla.
Los controles Validation de Asp .NET permiten:
- Capturar y validar cualquier cosa enviada por el usuario desde un formulario Web
- Personalizar los avisos de error cuando los datos no pasan la validación
- Escribir validaciones personalizadas de acuerdo a nuestras preferencias
Todos los controles Validation son controles Web, se ejecutan en el servidor y generan HTML que es enviado al cliente. La sintaxis básica es similar en todos ellos, aunque hay diferencias en las propiedades que admiten, según el tipo de control.
Ahora hablaremos un poco de cada uno de los CONTROLES DE VALIDACION:
CompareValidator: Compara un control de entrada de datos con otro, un valor fijo, un tipo de datos o un archivo. Por ejemplo, este control puede utilizarse para campos de verificación de contraseñas.
CustomValidator: Nos permite escribir nuestro propio código para crear la expresión de validación. Por ejemplo, este control puede utilizarse para verificar que el valor es un número primo.
RangeValidator: Similar al control CompareValidator, pero este control puede verificar que la entrada de datos de usuario esta entre dos valores o los valores de otros controles de entrada de datos. Por ejemplo, este control puede utilizarse para verificar que la entrada el usuario coincide con el intervalo de edad esperado.
RegularExpressionValidator: Verifica que la entrada coincide con un modelo definido por una expresión habilitar. Este control de validación permite comprobar secuencias predecibles de caracteres, como números de la seguridad social, direcciones electrónicas, número de telefono y codigos postales.
RequiredFieldValidator: Comprueba si se ha introducido un valor en un control. Es el único control de validación que requiere un valor. El resto de controles de validación de entrada aceptaran un control inmediato sobre el estado de entrada de datos de la página.
ValidationSummary: Muestra un resumen de todos los errores de validación para todos los controles de validación de la pagina. Este control se ubica normalmente cerca del botón Submit para proporcionar respuesta inmediata sobre el estado de entrada de datos de la página.
Posicionar Controles de Validación
Propiedad ErrorMessage
La propiedad ErrorMessage es el mensaje de error que se muestra en la ubicación de un control de validación cuando este se dispara, si no esta establecida la propiedad de Text.
Este mensaje también se incluirá en un control ValidationSummary si se utiliza uno en el formulario Web Form.
Propiedad Text
Es el texto alternativo que se mostrara en la ubicación del control de validación cuando se utilizan las propiedades ErrorMessage y Text y se dispara el control de validación. Si se utiliza un control ValidationSummary para capturar mensaje de error, normalmente se utiliza un asterisco (*) rojo a la derecha del control de entrada de datos no valido para indicar donde se encuentra el error.
Ahora vemos algunos ejercicios con cada uno de los controles:
Uso de RequiredFieldValidator:
Crear un Web Form agregando los siguientes controles: dos campos de texto (txtDato), un Botón y dos RequiredFieldValidator (rfvnombre, rfvapellidos) de la siguiente manera:
Para Agregar los controles de RequiredFieldValidator, nos vamos a la barra de herramientas y seleccionamos este control:
, y nuestro diseño quedara de la sgte. manera:

En las propiedades de cada control de Validación (rfvnombre y rfvapellido) colocar lo siguiente:

Similar para el otro control.
Propiedad Text
Para usar esta propiedad agregar un control ValidationSummary.Debajo de los controles de caja de texto se podrá observar que el mensaje de error es formado por este control.
Ahora modificamos las propiedades del control:
El diseño quedara así:

Uso de CompareValidator
Propiedades
ValueToCompare: La propiedad ValueToCompare se utiliza para establecer un valor constante con el que realizar la comparación. Esta propiedad se utiliza especialmente para validar contra valores inalterables, como un límite de edad mínima.
ControlToCompare: La propiedad ControlToCompare se utiliza para identificar otro control con el que realizar la comparación. Esta propiedad puede utilizarse para buscar errores tipográficos haciendo que el usuario introduzca los mismos datos en dos campos adyacentes. Si establecemos ambas propiedades ValueToCompare y ControlToCompare la propiedad ControlToCompare tiene prioridad.
Type: Es una propiedad que se utiliza para especificar el tipo de datos. Utilizamos esta propiedad cuando deseamos comparar el valor de un control de entrada de datos contra un DataType.
Operator: Es una propiedad que especifica el operador de comparación a utilizar. Los operadores se especifican con el nombre de los operadores de comparación, como Equal, NotEqual, GreaterThan y GreaterThanEqual.
Ejemplo: Crear el siguiente WebForm 2 Campos de texto (txtclave1,txtclave2), un botón y un control CompareValidator, adicionándole también 2 RequiredFieldValidator para cada TextBox.

Ahora modificamos en la propiedades del Control Compara Validator:

Uso del control RegularExpressionValidator
Cuando debemos verificar que los datos introducidos por un usuario coinciden con un modelo predefinido, como un número de teléfono, un código postal o una dirección electrónica, utilizamos el control RegularExpressionValidator. Este control de validación compara el modelo de caracteres, dígitos y símbolos introducidos por el usuario con uno o más modelos en el control.
Ejemplo: Colocar un caja de texto (txtmail) un label, un botón y un RegularExpressionValidator. Se va a verificar que sea un correo valido.

Ahora modificaremos las propiedades del control RegularExpressionValidator como se muestra en la imagen:

Uso de RangeValidator
Se utiliza para comprobar si el valor introducido esta dentro de un determinado intervalo. El intervalo de medida es inclusivo y los valores minimo y maximo se consideran validos. El control RangeValidatorse utiliza normalmente para verificar que el valor introducido (por ejemplo, edad, estatura, salario o número de hijos coincide con un intervalo previsto).
Propiedades
MinimumValor
La propiedad MinimumValor especifica el calor mínimo del intervalo válido para variables numéricas, o la longitud mínima de cadena de caracteres para variables de cadena.
MaximumValue
La propiedad MaximumValue especifica el valor máximo del intervalo válido para variables numéricas, o la longitud máxima de la cadena de caracteres para variables de cadena.
Type
La Propiedad Type se utiliza para especificar el tipo de datos de los valores a comparar. Los valores a comparar se convierten en este tipo de datos antes de que se realice alguna comparación.
Ejemplo: usaremos este control para validar que la fecha de nacimiento este dentro de un rango de 1/1/1901 hasta la fecha actual del sistema. Y además el formato sea el correcto para caso usaremos un Control Compare Validator.

En las propiedades en MinimumValue= 1/1/1901, y en Maximumvalue se hace dinámicamente.

En el Page_Load de la ventana se agrega el siguiente código por ser MaximumValue dinamico:
this.rvfnacimiento.MaximumValue = DateTime.Today.ToString("dd/MM/yyyy");
-----------------------------------------
Ahora para validar que el formato de fecha sea el correcto, modificamos en las propiedades del control CompareValidator como se muestra en le imagen:

- Dejar un comentario (19)
Comentarios sobre Controles de Validación en Asp .NET
muy buena explicacion de funcionamiento de controles de validacion
me ayudo mucho...
hola... gracias por el aporte m fue muy uti,tu explicacion muy facil de entender .....gracias gracias... exito.bye
Excelente explicación!!, vaya hasta que puede encontrar algo entendible y muy bien descrito, te felicito por tu aportación!!!
Saludos!!!
Increíble..... me ha ido de maravilla, ahora solo tengo una cuestión es saber como comprobar si el usuario me introduce una hora, es decir "HH:mm". Muchas merci's.
Genial de verdad que no habia encontrado ota pagina que explicara tan bien como se utilizan estos controles , muchas gracias por tu explicación
Me ayudo mucho esta información, gracias!
Estoy empezando con esto del asp.net y me ha ayudado mucho.
Ahora veré tu blog más detenidamente.
Muchísimas gracias.
Me sirvio de mucho, está bastante claro y muy bien explicado.
Hola, bastante practica tu explicacion, gracias, pero me asalta una duda, si en vez de colocar un mensaje quisiera colocar una imagen, como lo hago?, es posible hacerlo dandole la ruta raiz?
saludos.
muy bueno tu post , excelente , me ayudo mucho. Gracias
Excelente me sirvio mucho!!!!
Gracias.
buena esolicacion me ayudo de mucho a ver si subes mas sobre el desarrollo de aplicaciones web , me encantaria saber mas
genial!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hola, buenas tardes, buenisimo tu post me ayudo a desenredarme en el uso del compareValidator, y me ayudo en la ocnstruccióm de mi codigo. Gracias por haber escrito el post.
saludos.