Está en la página 1de 38

Validacin de entrada de datos de

usuario

ndice
Descripcin

Leccin: Descripcin de la validacin de


entrada de datos del usuario

Leccin: uso de los controles de validacin 8


Leccin: validacin de pginas

30

Validacin de entrada de datos de

usuario

Descripcin

Descripcin de la validacin de entrada de datos de


usuario

Uso de controles de validacin

Validacin de pginas

***************************** use******************************

Introduccin

Al crear un control de entrada de datos, como un control TextBox, podemos


tener ciertas expectativas del tipo de entrada que el usuario introducir en ese
control. Una entrada de datos incorrecta, como mnimo, retrasar al usuario, y
puede incluso terminar nuestra aplicacin Web. Para verificar que la entrada de
datos cumple nuestras expectativas, debemos compararlo con el valor, intervalo
o formato que esperamos recibir del usuario. Para crear esta comprobacin,
enlazamos al menos un control de validacin de entrada de datos con el control
de entrada de datos y comparamos la entrada de datos de los usuarios con
nuestras expectativas.
En este mdulo, estudiaremos los controles de validacin de entrada de datos
disponibles en Microsoft ASP.NET. Tambin estudiaremos cmo aplicar de
forma eficaz estos controles a un formulario Web Form con ASP.NET
utilizando Microsoft Visual Studio .NET.

Objetivos

En este mdulo, aprenderemos a:

Identificar cundo es apropiada la validacin de entrada de datos en los


formularios Web Forms.

Utilizar controles de validacin de entrada de datos para verificar los datos


introducidos por el usuario en un formulario Web Form.

Verificar que todos los controles de validacin de una pgina son vlidos.

Validacin de entrada de datos de

usuario

Leccin: validacin de entrada de datos del usuario

Qu es es la validacin de entrada de datos?

Validacin del lado del cliente y del lado del servidor

Controles de validacin ASP.NET

***************************** use******************************

Introduccin

En esta leccin, estudiaremos cmo la validacin de entrada de datos verifica


que el usuario ha cumplimentado correctamente los controles de entrada de
datos en un formulario Web Form, antes de que una peticin sea procesada en
el servidor. Tambin estudiaremos los tipos de controles de validacin de
entrada de datos disponibles en ASP.NET.

Objetivos de la leccin

En esta leccin, aprenderemos a:

Explicar el concepto de validacin.

Explicar la diferencia entre validacin del lado del cliente y validacin del
lado del servidor.

Combinar los tipos apropiados de controles de validacin ASP.NET para


determinados requerimientos de entrada.

Validacin de entrada de datos de

usuario

Qu es la validacin de entrada de datos?

Verifica que el usuario ha introducido correctamente el


valor de un control

Bloquea el procesamiento de una pgina hasta que


todos los controles son vlidos

Evita el spoofing
o aadir
cdigo mal
intencionado

***************************** use******************************

Introduccin

La validacin de entrada de datos es el proceso de verificar que la entrada de


datos de un usuario en un formulario Web Form concuerda con el valor,
intervalo o formato de datos previsto. La validacin de la entrada de datos
mejora la experiencia del usuario en el sitio Web reduciendo el tiempo de
espera de mensajes de error y la probabilidad de envos incorrectos o cadas del
sitio Web debido a problemas con la entrada de datos del usuario. Cuando se
combinan con mensajes de error comprensibles y tiles, los controles de
validacin de entrada de datos pueden mejorar enormemente el uso de una
aplicacin Web, mejorando por tanto la percepcin de usuario de la calidad
global del sitio Web.
Los controles de validacin de entrada de datos actan para verificar que el
usuario ha cumplimentado correctamente un control de entrada de datos, como
un control TextBox, antes de que la solicitud sea procesada en el servidor. Los
controles de validacin de entrada de datos de un formulario Web Form actan
como filtros de datos antes de que la pgina o la lgica de servidor sea
procesada.
En ASP.NET, la validacin de entrada de datos siempre se ejecuta en el lado
del servidor, y puede ejecutarse en el lado del cliente si el navegador cliente
soporta la validacin. Si el navegador soporta la validacin del lado del cliente,
los controles de validacin de entrada de datos realizan la comprobacin de
errores en el cliente antes de enviar los datos al servidor. El usuario recibe
informacin inmediata sobre si los datos que ha introducido son vlidos o no.
Por motivos de seguridad, toda validacin de entrada de datos que se ejecute en
el lado del cliente se repite a continuacin en el lado del servidor.

Verificar valores de
control

La validacin de entrada funciona comparando la entrada de datos del usuario


con el formato de entrada de datos predeterminado. Estos formatos
predeterminados de entrada de datos pueden incluir el nmero de caracteres, el
uso de dgitos y/o letras, el intervalo del valor, una cadena especfica de
caracteres, o una frmula matemtica.

Validacin de entrada de datos de

usuario

Por ejemplo, un control de entrada de datos que solicita al usuario que


introduzca su nmero de telfono podra tener un control de validacin de
entrada de datos adjunto que verificara que el usuario nicamente introduce
nmeros en un formato basado en el nmero de telfono. Introducir letras o
muy pocos nmeros activara el control de validacin de entrada de datos para
validar la entrada de datos.
Procesamiento de
bloque de errores

La entrada de usuario que concuerda con el formato predeterminado es


procesada por el formulario Web Form. La entrada de usuario que no concuerda
con el formato predeterminado provoca un mensaje de error que detiene el
procesamiento por parte del formulario Web hasta que la entrada de usuario se
corrige para cumplir con el formato previsto y la pgina haya sido reenviada
para su procesamiento.

Spoofing y cdigo mal


intencionado

Los controles de validacin protegen los formularios Web Forms de dos


importantes peligros: spoofing y cdigo mal intencionado. Ejecutando todos los
controles de validacin en el lado del servidor, con independencia de la
validacin del lado del cliente, ASP.NET protege de las siguientes amenazas:

Spoofing
Spoofing es cuando un usuario modifica la pgina HTML (Hypertext
Markup Language) que se le ha enviado, y devuelve valores que hacen que
parezca que ha introducido datos vlidos o pasado una comprobacin de
autorizacin. La validacin nicamente es susceptible de spoofing en el lado
del cliente, porque el usuario puede deshabilitar scripts del lado del cliente
cambiando las opciones del navegador y no ejecutar el cdigo de validacin
del lado del cliente, lo que crea un falso nivel de autorizacin.
Con ASP.NET, la validacin de entrada de datos del lado del cliente
siempre se repite en el lado del servidor, donde los usuarios no pueden
modificar o deshabilitar el control de validacin.

Cdigo mal intencionado


Cuando un usuario puede agregar texto ilimitado a una pgina Web
mediante controles de entrada de datos de usuario que no dispongan de
validacin de entrada de datos, puede introducir cdigo mal intencionado.
Cuando el usuario enva la siguiente solicitud al servidor, este cdigo
aadido podra ser muy perjudicial para el servidor Web y las aplicaciones
conectadas.
Por ejemplo, si decidimos no validar un campo UserName porque tenemos
clientes internacionales y no podemos pensar en un formato de nombres
universal para la validacin, un usuario mal intencionado podra explotar
esta falta de validacin para provocar varios problemas, incluyendo:
Generar un error de tipo buffer overrun y una cada del servidor
introduciendo un nombre con varios miles de caracteres.
Crear y autenticar una nueva cuenta de usuario.
Agregar privilegios a su propia cuenta, y eliminar privilegios de otras
cuentas.
Enviar una consulta SQL a nuestra base de datos de clientes y descargar
todos los datos presentes, incluyendo nombres de usuario, direcciones,
contraseas y nmeros de tarjetas de crdito.

Validacin de entrada de datos de

usuario

Validacin del lado del cliente y del lado del servidor

ASP.NET puede generar


validacin del lado del cliente y
del lado del servidor

Mensaje
de error

Validacin del lado del cliente


z

El usuario
introduce datos

Dependiente de la versin del


navegador

Vlido?

Respuesta inmediata

Cliente

Reduce los ciclos de postback

Servidor

Validacin del lado del servidor


z

Repite toda la validacin del lado


del cliente
Puede validar contra datos
almacenados

No

S
Vlido?

No

S
Aplicacin Web
procesada

***************************** use******************************

Introduccin

La validacin de entrada de datos puede tener lugar tanto en el servidor como


en el cliente. Aunque ASP.NET siempre requiere validacin del lado del
servidor, la validacin del lado del cliente es una opcin con algunos
navegadores.
Los controles de validacin de ASP.NET disponen de soporte tanto del lado del
cliente como del lado del servidor. La validacin del lado del cliente utiliza
JavaScript y scripts DHTML (HTML Dinmico). La validacin del lado del
servidor puede ser desarrollada en cualquier lenguaje basado en Microsoft
.NET, y se compila a Microsoft Intermediate Language (MSIL). Tanto la
validacin del lado del cliente como la validacin del lado del servidor utilizan
el mismo modelo de programacin, aunque algunas variaciones entre los
lenguajes pueden crear pequeas diferencias en las funciones de validacin.

Validacin del lado del


cliente

La validacin del lado del cliente mejora el uso del formulario Web Form
comprobando la entrada de datos del usuario mientras se produce. Al
comprobar si se generan errores mientras se introducen, la validacin del lado
del cliente permite detectar errores antes de que el formulario Web Form sea
enviado, evitando as el viaje de ida y vuelta necesario para la validacin del
lado del servidor.
Escribir mltiples versiones de cdigo de validacin para soportar tanto el
servidor como los diferentes navegadores puede exigir mucho tiempo al
desarrollador. Los controles de validacin ASP.NET eliminan este problema ya
que la lgica de validacin se encapsula en los controles. Los controles crean
cdigo especfico para los navegadores de forma que los usuarios con soporte
de scripts del lado del cliente tendrn validacin de entrada de datos. Los
navegadores que no soporten scripts no recibirn los scripts de validacin en el
lado del cliente.
En versiones de navegador que soporten la validacin de entrada de datos,
como Microsoft Internet Explorer 4 o posterior, la validacin del lado del
cliente se produce cuando el usuario hace clic en el botn Submit. La pgina no
se publicar de nuevo en el servidor hasta que toda la validacin del lado del

Validacin de entrada de datos de

usuario

cliente sea correcta. En Internet Explorer 5 o posterior, el uso de la tecla


TABULADOR para moverse de un control de entrada de datos al siguiente
ejecuta la validacin del lado del cliente para el control de entrada de datos
completo. Esta validacin utilizando el TABULADOR ofrece al usuario
informacin inmediata sobre los datos que ha introducido.
Validacin del lado del
servidor

Todos los controles de validacin de entrada de datos se ejecutan en el lado del


servidor. Las validaciones del lado del cliente se repiten en el lado del servidor
cuando la pgina se enva de nuevo al servidor. Esta repeticin evita el spoofing
de usuarios que no ejecutan el script del lado del cliente e intentan introducir
datos no vlidos.
Los controles de validacin del lado del servidor pueden escribirse en cualquier
lenguaje basado en .NET, y se compilan en MSIL antes de ser ejecutados en el
servidor.
Adems de validar el formato de los datos introducidos, los controles de
validacin del lado del servidor pueden utilizarse para comparar la entrada de
datos del usuario con datos almacenados. Esta funcionalidad permite validacin
contra diversos elementos, como contraseas previamente almacenadas o
restricciones geogrficas, incluyendo las leyes y los impuestos locales.

Validacin de entrada de datos de

usuario

Controles de validacin ASP.NET


ASP.NET proporciona controles de validacin para:

Comparar valores

Comparar con una frmula personalizada

Comparar con un intervalo

Comparar con un modelo de expresin habitual

Requerir entrada de datos por parte del usuario

Resumir los controles de validacin de una pgina

***************************** use******************************

Controles de validacin

ASP.NET incluye los controles de validacin que se muestran en la siguiente


tabla.
Control de validacin

Funcin

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 verificacin de contraseas.

CustomValidator

Nos permite escribir nuestro propio cdigo para crear la


expresin de validacin. Por ejemplo, este control puede
utilizarse para verificar que el valor es un nmero primo.

RangeValidator

Similar al control CompareValidator, pero este control puede


verificar que la entrada de datos de usuario est 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.

RegularExpression
Validator

Verifica que la entrada coincide con un modelo definido por


una expresin habitual. Este control de validacin permite
comprobar secuencias predecibles de caracteres, como
nmeros de la seguridad social, direcciones electrnicas,
nmeros de telfono y cdigos postales. Visual Studio .NET
proporciona modelos predefinidos para expresiones habituales
como nmeros de telfono.

RequiredFieldValidator

Comprueba si se ha introducido un valor en un control. Es el


nico control de validacin que requiere un valor. El resto de
controles de validacin de entrada de datos aceptarn un
control vaco como respuesta vlida.

ValidationSummary

Muestra un resumen de todos los errores de validacin para


todos los controles de validacin de la pgina. Este control se
ubica normalmente cerca del botn Submit para proporcionar
respuesta inmediata sobre el estado de entrada de datos de la
pgina.

Validacin de entrada de datos de

usuario

Leccin: uso de los controles de validacin

Agregar controles de validacin a un formulario Web


Form

Posicionar controles de validacin en un formulario


Web Form

Combinar controles de validacin

Controles de validacin para la entrada de datos

Uso del control RegularExpressionValidator

Demostracin: uso de controles de validacin

Uso del control CustomValidator

Demostracin: uso del control CustomValidator

***************************** use******************************

Introduccin

En esta leccin, estudiaremos cmo aplicar controles de validacin a controles


de entrada de datos en un formulario Web Form ASP.NET.
Validar los datos introducidos por el usuario sola ser un proceso difcil. Para
cada control de entrada de datos, era necesario escribir primero cdigo de
validacin para el servidor en un determinado lenguaje. A continuacin, si se
realizaba validacin en el lado del cliente, necesitbamos escribir la validacin
equivalente en el lado del cliente en un script diferente para cada navegador.
ASP.NET y Visual Studio .NET han hecho ms fcil la validacin de la entrada
de usuario al proporcionar controles de validacin que proporcionan cdigo en
el lado del servidor y en el lado del cliente al agregarlos a nuestro formulario
Web Form.

Objetivos de la leccin

En esta leccin, aprenderemos a:

Agregar un control de validacin a un formulario Web Form y asociarlo a


un control de entrada de datos.

Posicionar los controles de validacin en una pgina Web para soportar el


uso correcto del control de entrada de datos asociado.

Utilizar los controles de validacin RequiredInputValidator,


CompareValidator y RangeValidator para validar datos introducidos por
el usuario.

Utilizar el control RegularExpressionValidator para validar datos


introducidos por el usuario.

Utilizar el control CustomValidator para validar datos introducidos por el


usuario.

Asociar mltiples controles de validacin a un nico control de entrada de


datos.

Validacin de entrada de datos de

usuario

Agregar controles de validacin a un formulario Web Form


11 Agregar un control de validacin
1.

2.22 Seleccionar el control de entrada de datos para validar


3.33 Establecer propiedades de validacin
<asp:TextBox
<asp:TextBox id="txtName"
id="txtName" runat="server"
runat="server" />
/>
<asp:Type_of_Validator
<asp:Type_of_Validator
id="Validator_id"
id="Validator_id"
runat="server"
runat="server"
ControlToValidate="txtName"
ControlToValidate="txtName"
ErrorMessage="Message_for_error_summary"
ErrorMessage="Message_for_error_summary"
Display="static|dynamic|none"
Display="static|dynamic|none"
Text="Text_to_display_by_input_control">
Text="Text_to_display_by_input_control">
</asp:Type_of_Validator>
</asp:Type_of_Validator>
***************************** use******************************

Introduccin

Como todos los controles de validacin de entrada de datos comparten un


modelo de objetos comn, el proceso de agregar controles de validacin a una
pgina es el mismo para todos los controles. En Visual Studio .NET,
simplemente arrastramos el control de validacin de entrada a una pgina,
seleccionamos el control de entrada a validar y establecemos las propiedades.

Agregar un control de
validacin

Para agregar un control de validacin, abrimos el cuadro de herramientas del


formulario Web Form, seleccionamos uno de los controles de validacin
disponibles y lo arrastramos junto al control de entrada de datos que deseamos
validar.

Seleccionar el control de
entrada de datos para
validar

Seleccionamos el control de entrada de datos para validar abriendo la ventana


Propiedades y seleccionando el ID de control de entrada de datos apropiado en
la lista desplegable que se encuentra junto a la propiedad ControlToValidate.
Podemos adjuntar mltiples controles de validacin a un nico control de
entrada de datos. Todos los controles de validacin adjuntos deben estar en
True antes de que ese control de entrada de datos sea aceptado y el formulario
Web Form ASP.NET pueda ser procesado.

Establecer las
propiedades de
validacin

Una vez el control de validacin de entrada de datos est ubicado en la pgina,


utilizamos la ventana Propiedades para introducir las propiedades especficas
del control, como la expresin de validacin, el mensaje de error y mensaje de
texto.
La sintaxis compartida para los controles de validacin de entrada de datos es la
siguiente:
<asp:type_of_validator id="validator_id" runat="server"
ControlToValidate="control_id"
ErrorMessage="error_message_for_error_summary"
Display="static|dynamic|none"
Text="Text_to_display_by_input_control">
</asp:type_of_validator>

10

Validacin de entrada de datos de

usuario

Cada control de validacin tiene propiedades nicas adicionales que definen el


modo de funcionamiento. Dos de las propiedades que comparten todos los
controles de validacin, a excepcin del control ValidationSummary, son
Type y EnableClientScript:

Type
La propiedad Type es el tipo de datos que se validar. Visual Studio .NET
ajustar automticamente el tipo de datos para que coincida con el control
de entrada de datos adjunto al seleccionar ControlToValidate.
Entre los tipos de datos disponibles se incluyen String, Integer, Double,
Date y Currency.

EnableClientScript
La propiedad EnableClientScript indica si realizamos o no la validacin
del lado del cliente. El valor predeterminado de esta propiedad es true.
ASP.NET crea procedimientos de validacin en el lado del cliente en
Microsoft JScript .NET, y crea procedimientos de validacin del lado del
servidor en C# y Microsoft Visual Basic .NET. Esta diferencia de lenguaje
puede provocar pequeas diferencias entre las implementaciones de
controles de validacin en el lado del cliente y en el lado del servidor.

Validacin de entrada de datos de

usuario

Posicionar controles de validacin en un formulario Web Form

Crear mensajes de error

Seleccionar modo de presentacin


z

Esttico

Dinmico

***************************** use******************************

Introduccin

Los controles de validacin de entrada de datos pueden mostrar un mensaje de


error cuando se produce una violacin en la entrada de datos. Es importante
posicionar los controles de validacin de entrada de datos de modo que el
usuario vea claramente qu control contiene la entrada de datos incorrecta. En
Visual Studio .NET, debemos posicionar el control de validacin en la pgina
donde debe aparecer el mensaje de error.
El cdigo HTML estndar para un control de validacin de entrada de datos es
el siguiente:
<asp:type_of_validator id="validator_id" runat="server"
ControlToValidate="control_id"
ErrorMessage="error_message_for_error_summary"
Display="static|dynamic|none"
Text="Text_to_display_by_input_control">
</asp:type_of_validator>

Mensajes de error

Los controles de validacin de entrada de datos ASP.NET contienen dos


propiedades de mensajes de error: una propiedad ErrorMessage y una
propiedad Text, pudindose mostrar ambas en la ubicacin del control de
validacin de entrada de datos. La diferencia entre ambas propiedades de
mensajes de error es la siguiente:

Propiedad ErrorMessage
La propiedad ErrorMessage es el mensaje de error que se muestra en la
ubicacin de un control de validacin cuando ste se dispara, si no est
establecida la propiedad Text. Este mensaje tambin se incluir en un
control ValidationSummary si se utiliza uno en el formulario Web Form.

11

12

Validacin de entrada de datos de

usuario

Propiedad Text
La propiedad Text es el texto alternativo que se mostrar en la ubicacin del
control de validacin cuando se utilizan las propiedades ErrorMessage y
Text, y se dispara el control de validacin. Si se utiliza un control
ValidationSummary para capturar mensajes de error, normalmente se
utiliza un asterisco (*) rojo a la derecha del control de entrada de datos no
vlido para indicar dnde se encuentra el error.
En Visual Studio .NET, el script predeterminado para la propiedad Text es
imprimir el contenido de Text entre las etiquetas de inicio y final del control
de validacin, como muestra el siguiente cdigo:
<asp:type_of_validator>Text</asp:type_of_validator>

En este mdulo, observarmos la propiedad Text declarada explcitamente,


como muestra el siguiente cdigo:
<asp:type_of_validatorText="Text">
</asp:type_of_validator>

Establecer la propiedad
Display

La propiedad Display establece el espacio de mensajes de error desde mltiples


controles de validacin cuando se muestra el formulario Web Form en
FlowLayout. La propiedad Display nicamente afecta a mensajes de error en la
ubicacin del control de validacin. Los mensajes que se muestran en
ValidationSummary no se ven afectados por la propiedad Display.
La siguiente tabla describe las diversas opciones de la propiedad Display.
Opciones

Descripcin

Static

Define una presentacin prefijada para el mensaje de error, con cada


control de validacin ocupando un espacio, aunque no haya texto de
mensaje de error visible. Esta opcin permite definir una presentacin
fija para la pgina, como se muestra en la ilustracin anterior.
De forma predeterminada, Visual Studio .NET utiliza
Display="static" para posicionar el texto del mensaje de error.

Dynamic

Permite que los controles de validacin se representen en la pgina


como parte del flujo de texto. El uso de esta opcin evita que se
muestren espacios en blanco en la pgina cuando no se invocan los
controles de validacin de entrada de datos, como se muestra en la
ilustracin anterior. En ocasiones, esta opcin hace que los controles
tengan movimiento en el formulario Web Form cuando se muestran
mensajes de error.

None

Bloquea la visualizacin de mensajes de error en la ubicacin del


control de validacin.

Validacin de entrada de datos de

usuario

13

Combinar controles de validacin

Pueden existir mltiples controles de validacin en un nico


control de entrada de datos

nicamente RequiredFieldValidator comprueba los controles


vacos

***************************** use******************************

Introduccin

En ocasiones, una nica funcin o control de validacin no es suficiente para


verificar que el usuario ha introducido correctamente los datos en un control de
entrada.
Por ejemplo, un control TextBox con nmeros de telfono puede requerir una
entrada, ajustarse a uno o varios modelos de nmero de telfono y ser verificada
contra una base de datos que almacena nmeros de telfono. En este escenario,
TextBox debera estar enlazado a un control RequiredFieldValidator, un
control RegularExpressionValidator con varios patrones y un control
CustomValidator con acceso a una base de datos.

Mltiples controles de
validacin en un nico
control de entrada
Ejemplo

Podemos asociar mltiples controles de validacin a un nico control de


entrada de datos. Esta asociacin muchos-a-uno de los controles de validacin
permite la introduccin de datos del usuario para ms de un requerimiento de
validacin.
El siguiente cdigo de ejemplo muestra un nico control de entrada de datos
para un nmero de telfono. El contenido del control de entrada de datos se
comprueba utilizando un control RequiredFieldValidator, y el formato
correcto se comprueba utilizando un control RegularExpressionValidator:

Control de entrada de datos


El siguiente cdigo define el control TextBox que se est validando:
<asp:TextBox id="txtPhone1" runat="server" >
</asp:TextBox>

14

Validacin de entrada de datos de

usuario

Control RequiredFieldValidator
El siguiente cdigo define el control RequiredFieldValidator que verifica
que hay una entrada en txtPhone1:
<asp:RequiredFieldValidator
id="RequiredtxtPhone1Validator1"
runat="server"
ErrorMessage=
"A telephone number is required"
ControlToValidate="txtPhone1"
Text="*">
</asp:RequiredFieldValidator>

Control RegularExpressionValidator
El siguiente cdigo define el control RegularExpressionValidator que
verifica que la entrada en txtPhone1 coincide con el modelo de nmero de
telfono de Estados Unidos:
<asp:RegularExpressionValidator
id="RegulartxtPhone1Validator1"
runat="server"
ErrorMessage=_
"This telephone number is not formatted correctly"
ControlToValidate="txtPhone1"
ValidationExpression=
"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"
Text="*">
</asp:RegularExpressionValidator>

Control CustomValidator
El siguiente cdigo define el control CustomValidator que invoca la
funcin MyServerValidation, que compara la entrada en txtPhone1 con
una base de datos de nmeros de telfono:
<asp:CustomValidator
id="CustomValidator1"
OnServerValidate = "MyServerValidation"
runat="server"
ErrorMessage="This telephone number is not recognized"
ControlToValidate="txtPhone1"
Text="*">
</asp:CustomValidator>

Validacin de entrada de datos de

usuario

15

Controles de validacin de entrada de datos

RequiredFieldValidator
z

InitialValue

CompareValidator
z

ValueToComparar o ControlToComparar

Type

Operator

RangeValidator
z

MinimumValue

MaximumValue

Type

Cdigo de ejemplo
***************************** use******************************

Introduccin

Los controles de validacin ms sencillos son los controles


RequiredFieldValidator, CompareValidator y RangeValidator. Todos ellos
validan contra valores fijos o contra un segundo control de entrada de datos.

Control
RequiredFieldValidator

Utilizamos el control RequiredFieldValidator para obligar a un usuario a


introducir datos en un control de entrada de datos. Cualquier carcter es una
respuesta vlida con este control de validacin. nicamente la nula entrada de
datos (en blanco), o espacios, constituye una entrada no vlida con este control.
El control RequiredFieldValidator se utiliza normalmente slo en controles de
entrada de datos necesarios para completar un proceso solicitado. Por ejemplo,
un control RequiredFieldValidator se utilizara para los campos
nombre_usuario y contrasea en una pgina de inicio de sesin, pero no para
informacin secundaria, como una oferta para convertirse en visitante favorito
de un determinado sitio Web.
Una opcin para el control RequiredFieldValidator es tener un valor inicial
que no sea una cadena vaca (en blanco). Resulta til tener un valor inicial
cuando tenemos un valor predeterminado para un control de entrada de datos y
deseamos que el usuario introduzca otro valor. Para requerir un cambio del
valor inicial del control de entrada de datos asociado, establecer la propiedad
InitialValue para que coincida con el valor inicial del control de entrada de
datos.
En el siguiente ejemplo, un control RequiredFieldValidator verifica que el
valor txtName del control TextBox no es el valor inicial de Enter your name:

16

Validacin de entrada de datos de

usuario

<asp:TextBox id="txtName" runat="server">


Enter your name</asp:TextBox>
<asp:RequiredFieldValidator id="txtNameValidator"
runat="server"
ControlToValidate="txtName"
InitialValue="Enter your name"
ErrorMessage="You must enter your name"
Display="dynamic"
Text="*">
</asp:RequiredFieldValidator>

Nota nicamente el control RequiredFieldValidator requiere que se


introduzca un valor en un control. El resto de controles de validacin aceptarn
un control vaco o un espacio como respuesta vlida.
Uso del control
CompareValidator

Utilizamos el control CompareValidator para probar la entrada de datos del


usuario contra un valor especfico o contra un segundo control de entrada de
datos. El control CompareValidator a menudo se utiliza donde el riesgo de
errores tipogrficos es alto, como campos de contrasea que no muestran la
entrada real de usuario.
El control CompareValidator mostrar como vlido un control de entrada de
datos vaco.
El control CompareValidator utiliza las siguientes propiedades:

ValueToCompare
La propiedad ValueToCompare se utiliza para establecer un valor
constante con el que realizar la comparacin. Utilizamos un carcter tubera
(|) para separar varios valores. Esta propiedad se utiliza especialmente para
validar contra valores inalterables, como un lmite de edad mnima.
Utilizamos el control CustomValidator para comparar contra valores que
pueden cambiar.

ControlToCompare
La propiedad ControlToCompare se utiliza para identificar otro control
con el que realizar la comparacin. Esta propiedad puede utilizarse para
buscar errores tipogrficos 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
La propiedad Type 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
La propiedad Operator especifica el operador de comparacin a utilizar.
Los operadores se especifican con el nombre de los operadores de
comparacin, como Equal, NotEqual, GreaterThan y
GreaterThanEqual.

Validacin de entrada de datos de

usuario

17

En el siguiente ejemplo, un control CompareValidator verifica que los valores


de los controles TextBox, txtPassword1 y txtPassword2, coinciden:
<asp:TextBox id="txtPassword1" runat="server">
Enter your password </asp:TextBox>
<asp:TextBox id="txtPassword2" runat="server" >
Enter your password again </asp:TextBox>
<asp:CompareValidator id="CompareValidator1" runat="server"
ErrorMessage="These fields do not match"
ControlToCompare="txtPassword1"
ControlToValidate="txtPassword2"
Text="*">
</asp:CompareValidator>

Uso del control


RangeValidator

El control RangeValidator se utiliza para comprobar si el valor introducido


est dentro de un determinado intervalo. El intervalo de medida es inclusivo y
los valores mnimo y mximo se consideran vlidos. El control
RangeValidator se utiliza normalmente para verificar que el valor introducido
(por ejemplo, edad, estatura, salario o nmero de hijos) coincide con un
intervalo previsto.
El control RangeValidator mostrar como vlido un control de entrada de
datos vaco.
El control RangeValidator tiene las siguientes propiedades:

MinimumValue
La propiedad MinimumValue especifica el valor mnimo del intervalo
vlido para variables numricas, o la longitud mnima de la cadena de
caracteres para variables de cadena.

MaximumValue
La propiedad MaximumValue especifica el valor mximo del intervalo
vlido para variables numricas, o la longitud mxima de la de caracteres
cadena 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 comparacin.

En el siguiente ejemplo, un control RangeValidator verifica que el control


TextBox denominado txtAge tiene un valor entre 18 y 50:

18

Validacin de entrada de datos de


<asp:textbox id="txtAge" runat="server">
Enter your age</asp:textbox>
<asp:RangeValidator id="txtAgeValidator" runat="server"
ControlToValidate="txtAge"
Type="Integer"
MinimumValue="18"
MaximumValue="50"
ErrorMessage="Applicants must be between 18 and 50"
Display="dynamic"
Text="*">
</asp:RangeValidator>

usuario

Validacin de entrada de datos de

usuario

19

Uso del control RegularExpressionValidator

Se utiliza cuando la entrada debe ajustarse a un


modelo predefinido
Visual Studio .NET incluye modelos para:
z

Nmeros de telfono

Cdigos postales

Direcciones electrnicas

<asp:RegularExpressionValidator
<asp:RegularExpressionValidator
ControlToValidate="US_PhoneNumber"
ControlToValidate="US_PhoneNumber"
ValidationExpression="
((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}
?)|(\d{3}-))?\d{3}-\d{4} ""
ValidationExpression="((\(\d{3}\)
>*</asp:RegularExpressionValidator
>*</asp:RegularExpressionValidator >>

Cdigo de ejemplo
***************************** use******************************

Introduccin

Cuando debemos verificar que los datos introducidos por un usuario coinciden
con un modelo predefinido, como un nmero de telfono, un cdigo postal o
una direccin electrnica, utilizamos el control RegularExpressionValidator.
Este control de validacin compara el modelo de caracteres, dgitos y smbolos
introducidos por el usuario con uno o ms modelos en el control.
Cuando hacemos clic en ValidationExpression en la ventana Propiedades,
Visual Studio .NET proporciona una serie de modelos de expresiones
habituales preestablecidas. Estos modelos incluyen direcciones electrnicas y
Web, nmeros de telfono y cdigos postales. Para crear un nuevo modelo,
seleccionar la plantilla Custom. El ltimo modelo utilizado estar disponible
para ser modificado. Esta caracterstica del ltimo utilizado ofrece una base a
partir de la cual crear nuestro propio modelo.

20

Validacin de entrada de datos de

Caracteres de
expresiones habituales

usuario

Generamos nuestras propias expresiones habituales personalizadas utilizando el


conjunto de caracteres de control que se muestran en la siguiente tabla.
Carcter

Definicin

Debe utilizar la letra en minscula. Las letras que no estn precedidas


por una barra invertida (\), o parte de un intervalo, son un
requerimiento para ese valor literal.

Debe utilizar el nmero 1. Cualquier nmero que no est precedido de


una barra invertida (\),o parte de un intervalo, es un requerimiento para
ese valor literal.

Elemento 0 1.

Elementos 0 a N.

Elementos 1 a N (1 como mnimo).

[0-n]

Intervalo de valores enteros de 0 a n.

{n}

La longitud debe ser n caracteres.

Separa mltiples modelos vlidos.

El siguiente carcter es un carcter comando.

\w

Debe tener un carcter.

\d

Debe tener un dgito.

\.

Debe tener un periodo.

Nota Para ms informacin sobre los caracteres de control, leer la


Introduccin a las expresiones regulares, en la documentacin en lnea de
Referencia de JScript.
Ejemplo de una
expresin simple

El siguiente cdigo de ejemplo muestra cmo podemos utilizar un control


RegularExpressionValidator para comprobar si un usuario ha introducido una
direccin electrnica vlida:
<asp:TextBox id="txtEmail" runat="server" />
<asp:RegularExpressionValidator id="txtEmail_validation"
runat="server"
ControlToValidate="txtEmail"
ErrorMessage="Use the format username@organization.xxx"
ValidationExpression="\w+@\w+\.\w+"
Text="*">
</asp:RegularExpressionValidator>

Validacin de entrada de datos de

usuario

21

Este control de validacin RegularExpression comprueba un modelo


especfico, como muestra la siguiente tabla.
Caracteres

Definicin

\w+

Una cadena de un carcter como mnimo.

Un signo (@).

\w+

Una cadena de un carcter como mnimo.

\.

Un periodo.

\w+

Una cadena de un carcter como mnimo.

Una direccin electrnica vlida para este control es: alguien@ejemplo.com.


Una direccin electrnica no vlida para este control es: alguien.com, o
alguien@.com.
Ejemplo de una
expresin compleja

La expresin predeterminada de correo electrnico de Visual Studio .NET es


ms compleja que el ejemplo anterior. El modelo predeterminado de correo
electrnico tambin limita la separacin de trminos antes y despus del signo
(@) a xx.xx o xx-xx.
La expresin regular predeterminada para direcciones electrnicas es:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Este control de validacin RegularExpression comprueba un modelo


especfico, como muestra la siguiente tabla.
Caracteres

Definicin

\w+

Una cadena de un carcter como mnimo.

([-+.]\w+)*

Puede tener uno o ms guiones o un punto, y una cadena de un


carcter como mnimo.

Un signo (@).

\w+

Una cadena de un carcter como mnimo.

([-.]\w+)*

Puede tener un guin o un punto, y una cadena de un carcter como


mnimo.

\.

Un punto.

\w+

Una cadena de un carcter como mnimo.

([-.]\w+)*

Puede tener un guin o un punto, y una cadena de un carcter como


mnimo.

Una direccin electrnica vlida para este control es: alguien@ejemplo.empresa.com.


Una direccin electrnica no vlida para este control es:
algu,ien@ejemplo..empresa.com.

22

Validacin de entrada de datos de

usuario

Demostracin: uso de los controles de validacin

Crear un formulario Web Form ASP.NET


con controles TextBox y Button

Agregar un control
RequiredFieldValidator

Agregar un control RangeValidator

Agregar un control
RegularExpressionValidator

***************************** use******************************

En esta demostracin, veremos cmo puede utilizarse un control


RequiredFieldValidator para verificar que un control TextBox se ha rellenado
antes de que un formulario Web Form sea procesado.

Ejecutar esta demostracin


Crear un formulario Web
Form ASP.NET con
controles TextBox y
Button

2. Cambiar a FlowLayout.

Agregar un control
RequiredFieldValidator

4. Agregar un control RequiredFieldValidator junto al control de entrada de


datos TextBox.

1. Crear un nuevo proyecto de aplicacin Web denominado ValidationTst1.


3. Arrastrar los siguientes controles Web desde el Cuadro de herramientas a
WebForm1: TextBox y Button.

5. Establecer las propiedades del control RequiredFieldValidator en la


ventana Propiedades, como muestra la siguiente tabla.
Propiedad

Valor

ControlToValidate

TextBox1

ErrorMessage

Texto del mensaje de error

Text

Se requiere entrada de datos

6. Mostrar que la propiedad Display de RequiredFieldValidator est


establecida en Static de forma predeterminada.
7. Guardar, generar y examinar la pgina.
8. Dejar el control en blanco y hacer clic en Button1.
Se obtiene el mensaje de error Text, y no el mensaje ErrorMessage.

Validacin de entrada de datos de

Agregar un control
RangeValidator

usuario

23

9. Agregar un control RangeValidator al formulario Web Form junto a


RequiredFieldValidator.
10. Establecer las propiedades del control RangeValidator en la ventana
Propiedades, como muestra la siguiente tabla:
Propiedad

Valor

ControlToValidate

TextBox1

ErrorMessage

Texto del mensaje de error

Text

Fuera del intervalo

MaximumValue

100

MinimumValue

16

Type

Entero

11. Guardar, generar y examinar la pgina.


12. Dejar el valor en blanco y hacer clic en Button.
Se debera obtener el mensaje Se requiere entrada de datos del control
RequiredFieldValidator.
13. Escribir un valor mayor que 100 o menor que 16, y hacer clic en Button. Se
debera obtener el mensaje Fuera del intervalo del control
RangeValidator.
El mensaje de texto Fuera del intervalo no est directamente junto al
control de entrada de datos. Debido a que la pgina est en modo de
presentacin esttico, el control RequiredFieldValidator guarda un espacio
para su mensaje de texto.
14. Volver a abrir el formulario Web Form, seleccionar el control
RequiredFieldValidator y cambiar la propiedad Display a Dynamic.
15. Guardar, generar y examinar la pgina.
16. Introducir un valor mayor que 100 o menor que 16, y hacer clic en Button.
Se debera obtener el mensaje Fuera del intervalo del control
RangeValidator.
Esta vez, el mensaje de texto Fuera del intervalo est directamente junto al
control de entrada de datos debido a que RequiredFieldValidator no
guarda el espacio para su mensaje de texto (modo de presentacin
dinmico).
Agregar un segundo
control TextBox y un
control Regular
ExpressionValidator

17. Agregar un segundo control TextBox y un control


RegularExpressionValidator junto a l.
18. Hacer clic con el botn derecho en el control RegularExpressionValidator
y clic en Propiedades, o clic en el control RegularExpressionValidator si
la ventana Propiedades sigue abierta, e introducir las siguientes propiedades:
a. En la propiedad ErrorMessage, escribir Direccin electrnica no
vlida.
b. En la propiedad ControlToValidate, seleccionar TextBox2.
c. En la propiedad ValidationExpression, seleccionar Internet E-mail
Address.
19. Guardar, generar y examinar la pgina.

24

Validacin de entrada de datos de

usuario

Escribir una direccin electrnica incorrecta en el segundo cuadro de texto y


hacer clic en Button. Se debera obtener el mensaje de texto Direccin
electrnica no vlida del control RegularExpressionValidator.
20. Seleccionar Ver fuente y mostrar la validacin del lado del cliente HTML.

Validacin de entrada de datos de

usuario

25

Uso del control CustomValidator

Es posible validar en lado del cliente, en el lado del


servidor, o en ambos
z

ClientValidationFunction

OnServerValidate

Validar con:
z

Frmula

Datos

Objetos COM

Servicio Web

Cdigo de ejemplo
***************************** use******************************

Introduccin

Utilizamos el control CustomValidator cuando deseamos utilizar nuestra


propia lgica de validacin personalizada para comprobar los datos
introducidos por el usuario contra una variable, frmula, o la entrada desde una
segunda fuente. El control CustomValidator se utiliza a menudo para
situaciones como la verificacin de contraseas, en las que los datos
introducidos por el usuario se comparan con una contrasea almacenada en una
base de datos de usuarios.

Validacin del lado del


cliente y del lado del
servidor

El control CustomValidator valida en el lado del servidor, y puede validar en


el lado del cliente si el navegador soporta la validacin. A diferencia de otros
controles de validacin, donde ASP.NET crea los scripts de validacin de
cliente y servidor, debemos escribir explcitamente los scripts de validacin
para el control CustomValidator. Establecemos el control CustomValidator
como vlido o no vlido utilizando la propiedad args.IsValid.
Las propiedades del control CustomValidator incluyen:

ClientValidationFunction
La propiedad ClientValidationFunction es el script que deseamos que
ejecute el control CustomValidator en el lado del cliente. Debido a que
escribimos nuestro propio script en el cliente, es importante comprobar que
existe coherencia lgica con el cdigo del lado del servidor.

OnServerValidate
La propiedad OnServerValidate es el script que deseamos que ejecute el
control CustomValidator en el lado del servidor. Debido a que escribimos
nuestro propio cdigo en el servidor, es importante comprobar que existe
coherencia lgica con el script del lado del cliente.

26

Validacin de entrada de datos de

Ejemplo

usuario

El siguiente cdigo de ejemplo muestra procedimientos del lado del servidor y


del lado del cliente para un control CustomValidator y verificar que un
nmero introducido en un control de entrada de datos es un nmero par:
<asp: CustomValidator
ClientValidationFunction = "MyClientFunction"
OnServerValidate = "MyServerFunction" />

Procedimiento del lado del cliente


El siguiente cdigo JScript est pensado para ejecutarse en Internet Explorer
6, y verificar que un nmero es par:
<script language = "Jscript">
function MyClientFunction(source, arguments) {
alert("Ejecucin en el cliente");
var intValue = arguments.Value;
if (intValue % 2 == 0) {
arguments.IsValid = true;
} else {
arguments.IsValid = false;
}
}
</script>

Procedimiento del lado del servidor


El siguiente cdigo est diseado para ejecutarse en un servidor .NET, y
verificar que un nmero es par:

Visual Basic .NET

Sub MyServerFunction(objSource as Object, _


args as ServerValidateEventArgs)
Dim intValue As Integer = args.Value
If intValue mod 2 = 0 Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub

C#

private void MyServerFunction(object objSource,


ServerValidateEventArgs args)
{
int intValue = Convert.ToInt16(args.Value);
if (intValue%2 == 0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

Validacin de entrada de datos de

usuario

27

Demostracin: uso del control CustomValidator

Agregar un control CustomValidator

Escribir el cdigo del lado del servidor

Escribir el script en el lado del cliente

Probar el resultado

***************************** use******************************

Introduccin

En esta demostracin, veremos cmo utilizar un control CustomValidator.


El cdigo para esta demostracin se encuentra en el proyecto Demo06VB o
Demo06CS que se pueden encontrar dentro del fichero demos06.zip

Ejecutar esta demostracin


1. Abrir el formulario Web Form denominado CustomValidator.aspx en
Visual Studio .NET.
El formulario Web Form ya dispone de un control TextBox y de un control
Button.
Agregar un control
CustomValidator

2. Agregar un control CustomValidator al formulario Web Form .


3. En la propiedad Text del control CustomValidator, escribir Es un nmero
impar.
4. Establecer la propiedad ControlToValidate en TextBox1.

Escribir el cdigo del


lado del servidor
Visual Basic .NET

5. Hacer doble clic en CustomValidator para abrir el procedimiento de evento


del lado del servidor y agregar el siguiente cdigo:
Dim intValue As
If intValue mod
args.IsValid
Else
args.IsValid
End If

Integer = args.Value
2 = 0 Then
= True
= False

28

Validacin de entrada de datos de

C#

usuario

int intValue = Convert.ToInt16(args.Value);


if (intValue % 2 == 0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}

El procedimiento de eventos del lado del servidor que Visual Studio .NET
ha creado automticamente debera tener el nombre
CustomValidator1_ServerValidate, y dos parmetros: source (tipo
Object) y args (tipo ServerValidateEventArgs).
Escribir el script del
lado del cliente

6. En la propiedad ClientValidationFunction del control CustomValidator,


escribir MyClientValidation.
7. Abrir el cdigo fuente HTML de la pgina CustomValidator.aspx (y no
CustomValidator.aspx.vb).
8. Quitar el comentario del siguiente cdigo que se encuentra justo despus de
la etiqueta <head>. Este ejemplo est en JScript:
function MyClientValidation(source, arguments)
{
alert("Ejecucin en el cliente");
var intValue = arguments.Value;
if (intValue % 2 == 0)
{
arguments.IsValid = true;
} else {
arguments.IsValid = false;
}
}

Probar el resultado

Verificar que el navegador de destino es Internet Explorer 5. En la vista de


Diseo o la vista HTML, seleccionar Propiedades, y verificar que Target
Schema est establecido a Internet Explorer 5.0.
9. Establecer la propiedad EnableClientScript del control CustomValidator
a True.
El script del lado del cliente se ejecutar antes del cdigo del lado del
servidor para evitar el viaje de ida y vuelta al servidor con la pgina si esta
propiedad est establecida a True y el navegador cliente es Internet
Explorer 4 o posterior.

Validacin de entrada de datos de

usuario

29

10. Generar y examinar CustomValidator.aspx.


11. Escribir un nmero en el cuadro de texto.
12. Se debera obtener el cuadro de mensaje Ejecucin en el cliente al hacer
clic en Button. Adems, se debera obtener el mensaje Es un nmero
impar cuando el nmero sea impar.
13. Establecer la propiedad EnableClientScript del control CustomValidator
en False, de forma que nicamente se ejecute el cdigo del lado del
servidor.
14. Generar y examinar la pgina.
15. En este momento no se debera obtener el cuadro de mensaje, ya que se est
ejecutando el cdigo en el lado del servidor. Sin embargo, seguir
apareciendo el mensaje Es un nmero impar cuando el nmero sea impar.

30

Validacin de entrada de datos de

usuario

Leccin: validacin de pginas

Uso de la propiedad Page.IsValid

Uso del control ValidationSummary

Demostracin: uso de la propiedad Page.IsValid y del


control ValidationSummary

***************************** use******************************

Introduccin

En esta leccin, estudiaremos cmo utilizar la propiedad Page.IsValid y el


control ValidationSummary para verificar que todos los controles de
validacin de un formulario ASP.NET Web Form son vlidos antes de que se
inicie el proceso.

Objetivos de la leccin

En esta leccin, aprenderemos a:

Utilizar la propiedad Page.IsValid para determinar si todos los controles de


validacin de entrada de datos de una pgina son vlidos.

Utilizar el control ValidationSummary para mostrar un resumen de


mensajes de error en una pgina.

Validacin de entrada de datos de

usuario

31

Uso de la propiedad Page.IsValid


Examina todos los controles de validacin
Sub
Sub cmdSubmit_Click(s
cmdSubmit_Click(s As
As Object,
Object, ee As
As EventArgs)
EventArgs)
If
If Page.IsValid
Page.IsValid Then
Then
Message.Text
Message.Text == "Page
"Page is
is valid!"
valid!"
'' Perform
Perform database
database updates
updates or
or other
other logic
logic here
here
End
End If
If
End
End Sub
Sub
private
private void
void cmdSubmit_Click(object
cmdSubmit_Click(object s,
s, System.EventArgs
System.EventArgs e)
e)
{{ if
if (Page.IsValid)
(Page.IsValid)
{{

Message.Text
Message.Text == "Page
"Page is
is Valid!";
Valid!";
//
// Perform
Perform database
database updates
updates or
or other
other logic
logic here
here

}}
}}

***************************** use******************************

Introduccin

.NET permite verificar que todos los controles de una pgina son vlidos antes
de que realicen alguna accin. Esta verificacin puede llevarse a cabo en el
cliente o en el servidor, dependiendo del navegador que se est utilizando. La
verificacin del lado del cliente se realiza con el control ValidationSummary,
mientras que la verificacin del lado del servidor se realiza con la propiedad
Page.IsValid.

Uso de la propiedad
Page.IsValid

Para determinar si todos los controles de validacin de una pgina son vlidos,
comprobamos la propiedad IsValid de la pgina en tiempo de ejecucin. La
propiedad IsValid se vincula a los valores de todos los controles de validacin
que se encuentran en la pgina (utilizando un AND lgico). Si algn control de
validacin no es vlido, la propiedad IsValid devuelve False. Esta propiedad
proporciona una forma sencilla de determinar si los controles de entrada de
datos en el formulario Web Form son vlidos y si el formulario Web Form est
preparado para seguir con la lgica de negocio.
Los controles de validacin verifican las entradas del usuario, establecen un
estado de error y producen mensajes de error. Sin embargo, los controles de
validacin no cambian el flujo de procesamiento de pginas. Por ejemplo, los
controles de validacin no evitan nuestro cdigo si detectan un error en los
datos introducidos por el usuario. En lugar de ello, probamos el estado de los
controles en nuestro cdigo antes de realizar lgica especfica de aplicacin. Si
detectamos un error, evitamos que nuestro cdigo se ejecute; la pgina seguir
procesndose y se devuelve al usuario con mensajes de error.
Nota La informacin de validacin no est disponible durante la inicializacin
de una pgina o durante la fase de carga. Para obtener informacin sobre los
estados de pgina, examinar Estados de procesamiento de pginas de
formularios Web Forms en la documentacin de Visual Studio .NET.

32

Validacin de entrada de datos de

usuario

Ejemplo

El siguiente ejemplo muestra el controlador de eventos de un botn. El cdigo


verifica la propiedad IsValid de toda la pgina. No es necesario para una
clusula Else, ya que la pgina ser enviada de vuelta automticamente al
navegador y los controles de validacin mostrarn sus propios mensajes de
error:

Visual Basic .NET

Sub cmdSubmit_Click (s As Object, e As EventArgs)


If Page.IsValid Then
Message.Text = "Page is valid!"
' Perform database updates or other logic here
End If
End Sub

C#

private void cmdSubmit_Click(object s, System.EventArgs e)


{
if (Page.IsValid)
{
Message.Text = "Page is Valid!";
// Perform database updates or other logic here
}
}

Validacin de entrada de datos de

usuario

33

Uso del control ValidationSummary

Recopila los mensajes de error de todos los controles


de validacin de la pgina

Puede mostrar mensajes de texto y de error

Utilizar Text="*" para indicar la ubicacin del error


<asp:ValidationSummary
<asp:ValidationSummary id="valSummary"
id="valSummary"
runat="server"
runat="server"
HeaderText="These
HeaderText="These errors
errors were
were found:"
found:"
ShowSummary="True"
ShowSummary="True"
DisplayMode="List"/>
DisplayMode="List"/>

***************************** use******************************

Introduccin

El control ValidationSummary muestra cuando la propiedad Page.IsValid


devuelve False. Se contacta con cada control de validacin de la pgina y el
control ValidationSummary rene los mensajes de ErrorMessage.

Muestra mensajes de
texto y de error

El control ValidationSummary puede mostrar un cuadro de mensaje o un rea


de texto, con un encabezado y una lista de errores, dependiendo del valor
DisplayMode, podemos mostrar la lista de errores como una lista de vietas o
un nico prrafo. Los controles ValidationSummary se ubican normalmente
cerca del botn Submit de forma que todos los mensajes de error sean
fcilmente visibles para el usuario cuando se disparen los controles de
validacin de entrada de datos.
El siguiente cdigo HTML muestra un control ValidationSummary tpico:
<asp:ValidationSummary id="valSummary"
runat="server"
HeaderText="These errors were found:"
ShowSummary="True"
DisplayMode="List" />

Uso de * para localizar


errores

Cuando se utiliza el control ValidationSummary, la propiedad Text (si se


utiliza) se muestra en la ubicacin del control de validacin, mientras que la
propiedad ErrorMessage se muestra en la presentacin del control
ValidationSummary.
Normalmente, se muestra una propiedad Text con un asterisco (*) rojo a la
derecha del control de entrada de datos para avisar al usuario de que el control
de entrada de datos no se ha cumplimentado correctamente. En el control
ValidationSummary, se muestra una propiedad ErrorMessage, con una
descripcin del error de entrada de datos, que normalmente se ubica cerca del
evento que dispara el control.

34

Ejemplo

Validacin de entrada de datos de

usuario

La siguiente ilustracin muestra un par de campos de contrasea con varios


controles de validacin de entrada de datos y un control ValidationSummary.

Validacin de entrada de datos de

usuario

Demostracin: uso de la propiedad Page.IsValid y del control


ValidationSummary

Abrir una pgina ASP.NET con mltiples


cuadros de texto y controles de
validacin

Agregar un control ValidationSummary

Agregar un script que utilice la propiedad


Page.IsValid

***************************** use******************************

Introduccin

En esta demostracin, veremos cmo utilizar el mtodo Page.IsValid y el


control Validation Summary.
Los campos de esta demostracin se encuentran en el proyecto Demo06VB o
Demo06CS que se pueden encontrar dentro del fichero demos06.zip

Ejecutar esta demostracin


Abrir una pgina
ASP.NET

1. Abrir el formulario Web Form denominado ValidationSummary.aspx en


Visual Studio .NET.
La pgina ya contiene dos controles TextBox. Hay un control
RequiredFieldValidator y un control RangeValidator, que validan el
primer cuadro de texto. La pgina tambin contiene un control
RequiredFieldValidator y un control RegularExpressionValidator, que
validan el segundo cuadro de texto. Adems, hay un botn Submit y un
Label.

Agregar un control
Validation
Summary

2. Arrastrar el control ValidationSummary a la parte inferior de la pgina.

Agregar cdigo para


probar la validez de la
pgina

3. Hacer doble clic en el control Button para abrir el controlador de eventos


Click, y eliminar el comentario del siguiente cdigo:

Visual Basic .NET

C#

If Page.IsValid Then
lblMessage.Text = "Page is valid!"
End If

35

36

Validacin de entrada de datos de

usuario

if (Page.IsValid)
{
lblMessage.Text = "Page is valid!";
}

4. Guardar, generar y examinar la pgina ValidationSummary.aspx.


Deberamos ver el mensaje Page is valid! cuando toda la pgina sea vlida.

También podría gustarte