Avisar de contenido inadecuado

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:

imagen2 , y nuestro diseño quedara de la sgte. manera:

imagen1

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

imagen4

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

El diseño quedara así:

imagen5

 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.

 imagen6

Ahora modificamos en la propiedades del Control Compara Validator:

imagen7

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.

imagen8

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

imagen9

 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.

imagen10

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

imagen11

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:

imagen12

{
}
{
}

Comentarios Controles de Validación en Asp .NET

muy buena explicacion de funcionamiento de controles de validacion
me ayudo mucho... 

hamilton hamilton 23/02/2009 a las 03:57
Gracias poe el aporte que de verdad esta bastante bien ilustrado para mi forma de comprender. Un abrazo.
Simon Simon 18/08/2009 a las 18:00

hola... gracias por el aporte m fue muy uti,tu explicacion muy facil de entender .....gracias gracias... exito.bye

arys arys 03/11/2009 a las 19:46

Excelente explicación!!, vaya hasta que puede encontrar algo entendible y muy bien descrito, te felicito por tu aportación!!!



Saludos!!!

Karen Karen 16/01/2010 a las 05:02

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.

Fer Fer 09/02/2010 a las 18:07

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!

Arturo Rivas Arturo Rivas 12/03/2010 a las 04:08

Estoy empezando con esto del asp.net y me ha ayudado mucho.
Ahora veré tu blog más detenidamente.
Muchísimas gracias.

Baum Baum 10/05/2010 a las 20:33

Me sirvio de mucho, está bastante claro y muy bien explicado.

Mirta Mirta 07/06/2010 a las 05:34

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

Gino Gino 26/05/2011 a las 06:57

Excelente me sirvio mucho!!!!


Gracias.

Francisco Francisco 02/09/2011 a las 18:41

buena  esolicacion  me  ayudo  de mucho  a  ver  si  subes  mas  sobre  el  desarrollo  de  aplicaciones  web  , me  encantaria  saber  mas 
genial!!!!!!!!!!!!!!!!!!!!!!!!!!!!

reyes reyes 21/09/2011 a las 20:34

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.

veronica veronica 27/09/2012 a las 21:50
pues la verdad esta muy explicado me arreglan algunos incovenientes que tenia en cuanto a validaciones
jeison jeison 11/11/2012 a las 22:37
gracias, me sirvio de mucho!! Saludos desde Bolivia :)
Aioros Aioros 19/11/2012 a las 17:58
Excelente post, me ayudo en un proyecto final de la universidad.
camilo camilo 27/11/2012 a las 01:24
mas o menos, falta una validacion de si text1 es mayor a text2 entonces ingresa algo en text3 :(
samantha samantha 07/12/2012 a las 01:13
muy buena la explicacion, gracias por el aporte
La Rana La Rana 21/02/2013 a las 18:06
una duda nomas en la parte de validar una fecha en el control de range validator en su propiedad date no hiria date en vez de string. Gracias muy bueno el blog
manuel manuel 23/06/2013 a las 03:56
hola tengo una duda,
lo que quiero es validar que la fecha del control calendar (ClrFechaFin) sea mayor a la fecha del sistema.
intente con este código en el método load.
this.rvtCalendarFechaFin.MinimumValue = DateTime.Today.ToString("dd/MM/yyyy");
this.rvtCalendarFechaFin.MaximumValue = ClrFechaFin.SelectedDate.ToShortDateString();

pero me marca este error
System.Web.HttpException: The ControlToValidate property of 'rvtCalendarFechaFin' cannot be blank.

si pudieras ayudarme te lo agradeceria
Ing. Jesus Dom Rosas Ing. Jesus Dom Rosas 25/07/2013 a las 00:29

Deja tu comentario Controles de Validación en Asp .NET

Identifícate en OboLog, o crea tu blog gratis si aún no estás registrado.

Avatar de usuario Tu nombre