SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Validación de entrada de datos de 
usuario 
Índice 
Descripción 1 
Lección: Descripción de la validación de 
entrada de datos del usuario 2 
Lección: uso de los controles de validación 8 
Lección: validación de páginas 30
Validando las entradas de usuario
Validación de entrada de datos de usuario 1 
Descripción 
„ Descripción de la validación de entrada de datos de 
usuario 
„ Uso de controles de validación 
„ Validación de páginas 
***************************** use****************************** 
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 mínimo, retrasará al usuario, y 
puede incluso terminar nuestra aplicación 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 comprobación, 
enlazamos al menos un control de validación 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 módulo, estudiaremos los controles de validación de entrada de datos 
disponibles en Microsoft® ASP.NET. También estudiaremos cómo aplicar de 
forma eficaz estos controles a un formulario Web Form con ASP.NET 
utilizando Microsoft Visual Studio® .NET. 
En este módulo, aprenderemos a: 
„ Identificar cuándo es apropiada la validación de entrada de datos en los 
formularios Web Forms. 
„ Utilizar controles de validación de entrada de datos para verificar los datos 
introducidos por el usuario en un formulario Web Form. 
„ Verificar que todos los controles de validación de una página son válidos. 
Introducción 
Objetivos
2 Validación de entrada de datos de usuario 
Lección: validación de entrada de datos del usuario 
„ ¿Qué es es la validación de entrada de datos? 
„ Validación del lado del cliente y del lado del servidor 
„ Controles de validación ASP.NET 
***************************** use****************************** 
En esta lección, estudiaremos cómo la validación 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 petición sea procesada en 
el servidor. También estudiaremos los tipos de controles de validación de 
entrada de datos disponibles en ASP.NET. 
En esta lección, aprenderemos a: 
„ Explicar el concepto de validación. 
„ Explicar la diferencia entre validación del lado del cliente y validación del 
lado del servidor. 
„ Combinar los tipos apropiados de controles de validación ASP.NET para 
determinados requerimientos de entrada. 
Introducción 
Objetivos de la lección
Validación de entrada de datos de usuario 3 
¿Qué es la validación de entrada de datos? 
„ Verifica que el usuario ha introducido correctamente el 
valor de un control 
„ Bloquea el procesamiento de una página hasta que 
todos los controles son válidos 
„ Evita el spoofing 
o añadir 
código mal 
intencionado 
***************************** use****************************** 
La validación 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 validación 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 envíos incorrectos o caídas 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 
validación de entrada de datos pueden mejorar enormemente el uso de una 
aplicación Web, mejorando por tanto la percepción de usuario de la calidad 
global del sitio Web. 
Los controles de validación de entrada de datos actúan 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 validación de entrada de datos de un formulario Web Form actúan 
como filtros de datos antes de que la página o la lógica de servidor sea 
procesada. 
En ASP.NET, la validación 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 validación. Si el navegador soporta la validación del lado del cliente, 
los controles de validación de entrada de datos realizan la comprobación de 
errores en el cliente antes de enviar los datos al servidor. El usuario recibe 
información inmediata sobre si los datos que ha introducido son válidos o no. 
Por motivos de seguridad, toda validación de entrada de datos que se ejecute en 
el lado del cliente se repite a continuación en el lado del servidor. 
La validación 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 número de caracteres, el 
uso de dígitos y/o letras, el intervalo del valor, una cadena específica de 
caracteres, o una fórmula matemática. 
Introducción 
Verificar valores de 
control
4 Validación de entrada de datos de usuario 
Por ejemplo, un control de entrada de datos que solicita al usuario que 
introduzca su número de teléfono podría tener un control de validación de 
entrada de datos adjunto que verificara que el usuario únicamente introduce 
números en un formato basado en el número de teléfono. Introducir letras o 
muy pocos números activaría el control de validación de entrada de datos para 
validar la entrada de datos. 
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 página haya sido reenviada 
para su procesamiento. 
Los controles de validación protegen los formularios Web Forms de dos 
importantes peligros: spoofing y código mal intencionado. Ejecutando todos los 
controles de validación en el lado del servidor, con independencia de la 
validación del lado del cliente, ASP.NET protege de las siguientes amenazas: 
„ Spoofing 
Spoofing es cuando un usuario modifica la página HTML (Hypertext 
Markup Language) que se le ha enviado, y devuelve valores que hacen que 
parezca que ha introducido datos válidos o pasado una comprobación de 
autorización. La validación ú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 código de validación 
del lado del cliente, lo que crea un falso nivel de autorización. 
Con ASP.NET, la validación 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 validación. 
„ Código mal intencionado 
Cuando un usuario puede agregar texto ilimitado a una página Web 
mediante controles de entrada de datos de usuario que no dispongan de 
validación de entrada de datos, puede introducir código mal intencionado. 
Cuando el usuario envía la siguiente solicitud al servidor, este código 
añadido podría 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 validación, un usuario mal intencionado podría explotar 
esta falta de validación para provocar varios problemas, incluyendo: 
• Generar un error de tipo buffer overrun y una caída 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, 
contraseñas y números de tarjetas de crédito. 
Procesamiento de 
bloque de errores 
Spoofing y código mal 
intencionado
Validación de entrada de datos de usuario 5 
Validación del lado del cliente y del lado del servidor 
„ ASP.NET puede generar 
validación del lado del cliente y 
del lado del servidor 
„ Validación del lado del cliente 
z Dependiente de la versión del 
navegador 
z Respuesta inmediata 
z Reduce los ciclos de postback 
„ Validación del lado del servidor 
z Repite toda la validación del lado 
del cliente 
z Puede validar contra datos 
almacenados 
El usuario 
introduce datos 
¿Válido? 
¿Válido? 
No 
No 
Sí 
Sí 
Mensaje 
de error 
Cliente 
Servidor 
Aplicación Web 
procesada 
***************************** use****************************** 
La validación de entrada de datos puede tener lugar tanto en el servidor como 
en el cliente. Aunque ASP.NET siempre requiere validación del lado del 
servidor, la validación del lado del cliente es una opción con algunos 
navegadores. 
Los controles de validación de ASP.NET disponen de soporte tanto del lado del 
cliente como del lado del servidor. La validación del lado del cliente utiliza 
JavaScript y scripts DHTML (HTML Dinámico). La validación del lado del 
servidor puede ser desarrollada en cualquier lenguaje basado en Microsoft 
.NET, y se compila a Microsoft Intermediate Language (MSIL). Tanto la 
validación del lado del cliente como la validación del lado del servidor utilizan 
el mismo modelo de programación, aunque algunas variaciones entre los 
lenguajes pueden crear pequeñas diferencias en las funciones de validación. 
La validación 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 validación 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 validación del 
lado del servidor. 
Escribir múltiples versiones de código de validación para soportar tanto el 
servidor como los diferentes navegadores puede exigir mucho tiempo al 
desarrollador. Los controles de validación ASP.NET eliminan este problema ya 
que la lógica de validación se encapsula en los controles. Los controles crean 
código específico para los navegadores de forma que los usuarios con soporte 
de scripts del lado del cliente tendrán validación de entrada de datos. Los 
navegadores que no soporten scripts no recibirán los scripts de validación en el 
lado del cliente. 
En versiones de navegador que soporten la validación de entrada de datos, 
como Microsoft Internet Explorer 4 o posterior, la validación del lado del 
cliente se produce cuando el usuario hace clic en el botón Submit. La página no 
se publicará de nuevo en el servidor hasta que toda la validación del lado del 
Introducción 
Validación del lado del 
cliente
6 Validación 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 validación del lado del cliente para el control de entrada de datos 
completo. Esta validación utilizando el TABULADOR ofrece al usuario 
información inmediata sobre los datos que ha introducido. 
Todos los controles de validación 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 página se envía de nuevo al servidor. Esta repetición evita el spoofing 
de usuarios que no ejecutan el script del lado del cliente e intentan introducir 
datos no válidos. 
Los controles de validación del lado del servidor pueden escribirse en cualquier 
lenguaje basado en .NET, y se compilan en MSIL antes de ser ejecutados en el 
servidor. 
Además de validar el formato de los datos introducidos, los controles de 
validación del lado del servidor pueden utilizarse para comparar la entrada de 
datos del usuario con datos almacenados. Esta funcionalidad permite validación 
contra diversos elementos, como contraseñas previamente almacenadas o 
restricciones geográficas, incluyendo las leyes y los impuestos locales. 
Validación del lado del 
servidor
Validación de entrada de datos de usuario 7 
Controles de validación ASP.NET 
ASP.NET proporciona controles de validación para: 
„ Comparar valores 
„ Comparar con una fórmula personalizada 
„ Comparar con un intervalo 
„ Comparar con un modelo de expresión habitual 
„ Requerir entrada de datos por parte del usuario 
„ Resumir los controles de validación de una página 
***************************** use****************************** 
ASP.NET incluye los controles de validación que se muestran en la siguiente 
tabla. 
Control de validación Función 
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 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 expresión habitual. Este control de validación permite 
comprobar secuencias predecibles de caracteres, como 
números de la seguridad social, direcciones electrónicas, 
números de teléfono y códigos postales. Visual Studio .NET 
proporciona modelos predefinidos para expresiones habituales 
como números de teléfono. 
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 de datos aceptarán un 
control vacío como respuesta válida. 
ValidationSummary Muestra un resumen de todos los errores de validación para 
todos los controles de validación de la página. 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. 
Controles de validación
8 Validación de entrada de datos de usuario 
Lección: uso de los controles de validación 
„ Agregar controles de validación a un formulario Web 
Form 
„ Posicionar controles de validación en un formulario 
Web Form 
„ Combinar controles de validación 
„ Controles de validación para la entrada de datos 
„ Uso del control RegularExpressionValidator 
„ Demostración: uso de controles de validación 
„ Uso del control CustomValidator 
„ Demostración: uso del control CustomValidator 
***************************** use****************************** 
En esta lección, estudiaremos cómo aplicar controles de validación a controles 
de entrada de datos en un formulario Web Form ASP.NET. 
Validar los datos introducidos por el usuario solía ser un proceso difícil. Para 
cada control de entrada de datos, era necesario escribir primero código de 
validación para el servidor en un determinado lenguaje. A continuación, si se 
realizaba validación en el lado del cliente, necesitábamos escribir la validación 
equivalente en el lado del cliente en un script diferente para cada navegador. 
ASP.NET y Visual Studio .NET han hecho más fácil la validación de la entrada 
de usuario al proporcionar controles de validación que proporcionan código en 
el lado del servidor y en el lado del cliente al agregarlos a nuestro formulario 
Web Form. 
En esta lección, aprenderemos a: 
„ Agregar un control de validación a un formulario Web Form y asociarlo a 
un control de entrada de datos. 
„ Posicionar los controles de validación en una página Web para soportar el 
uso correcto del control de entrada de datos asociado. 
„ Utilizar los controles de validación 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 múltiples controles de validación a un único control de entrada de 
datos. 
Introducción 
Objetivos de la lección
Validación de entrada de datos de usuario 9 
Agregar controles de validación a un formulario Web Form 
1. Agregar un control de validación 
2. Seleccionar el control de entrada de datos para validar 
3. Establecer propiedades de validación 
1 1 
2 2 
3 3 
<<aasspp::TTeexxttBBooxx iidd==""ttxxttNNaammee"" rruunnaatt==""sseerrvveerr"" //>> 
<asp:Type_of_Validator 
id="Validator_id" 
runat="server" 
ControlToValidate="txtName" 
ErrorMessage="Message_for_error_summary" 
Display="static|dynamic|none" 
Text="Text_to_display_by_input_control"> 
</asp:Type_of_Validator> 
<asp:Type_of_Validator 
id="Validator_id" 
runat="server" 
ControlToValidate="txtName" 
ErrorMessage="Message_for_error_summary" 
Display="static|dynamic|none" 
Text="Text_to_display_by_input_control"> 
</asp:Type_of_Validator> 
***************************** use****************************** 
Como todos los controles de validación de entrada de datos comparten un 
modelo de objetos común, el proceso de agregar controles de validación a una 
página es el mismo para todos los controles. En Visual Studio .NET, 
simplemente arrastramos el control de validación de entrada a una página, 
seleccionamos el control de entrada a validar y establecemos las propiedades. 
Para agregar un control de validación, abrimos el cuadro de herramientas del 
formulario Web Form, seleccionamos uno de los controles de validación 
disponibles y lo arrastramos junto al control de entrada de datos que deseamos 
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 múltiples controles de validación a un único control de 
entrada de datos. Todos los controles de validación 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. 
Una vez el control de validación de entrada de datos está ubicado en la página, 
utilizamos la ventana Propiedades para introducir las propiedades específicas 
del control, como la expresión de validación, el mensaje de error y mensaje de 
texto. 
La sintaxis compartida para los controles de validación 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> 
Introducción 
Agregar un control de 
validación 
Seleccionar el control de 
entrada de datos para 
validar 
Establecer las 
propiedades de 
validación
10 Validación de entrada de datos de usuario 
Cada control de validación tiene propiedades únicas adicionales que definen el 
modo de funcionamiento. Dos de las propiedades que comparten todos los 
controles de validación, a excepción del control ValidationSummary, son 
Type y EnableClientScript: 
„ Type 
La propiedad Type es el tipo de datos que se validará. Visual Studio .NET 
ajustará automáticamente 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 validación 
del lado del cliente. El valor predeterminado de esta propiedad es true. 
ASP.NET crea procedimientos de validación en el lado del cliente en 
Microsoft JScript® .NET, y crea procedimientos de validación del lado del 
servidor en C# y Microsoft Visual Basic® .NET. Esta diferencia de lenguaje 
puede provocar pequeñas diferencias entre las implementaciones de 
controles de validación en el lado del cliente y en el lado del servidor.
Validación de entrada de datos de usuario 11 
Posicionar controles de validación en un formulario Web Form 
„ Crear mensajes de error 
„ Seleccionar modo de presentación 
z Estático 
z Dinámico 
***************************** use****************************** 
Los controles de validación de entrada de datos pueden mostrar un mensaje de 
error cuando se produce una violación en la entrada de datos. Es importante 
posicionar los controles de validación 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 validación en la página 
donde debe aparecer el mensaje de error. 
El código HTML estándar para un control de validación 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> 
Los controles de validación de entrada de datos ASP.NET contienen dos 
propiedades de mensajes de error: una propiedad ErrorMessage y una 
propiedad Text, pudiéndose mostrar ambas en la ubicación del control de 
validación 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 
ubicación de un control de validación cuando éste se dispara, si no está 
establecida la propiedad Text. Este mensaje también se incluirá en un 
control ValidationSummary si se utiliza uno en el formulario Web Form. 
Introducción 
Mensajes de error
12 Validación de entrada de datos de usuario 
„ Propiedad Text 
La propiedad Text es el texto alternativo que se mostrará 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 mensajes de error, normalmente se 
utiliza un asterisco (*) rojo a la derecha del control de entrada de datos no 
válido para indicar dónde 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 validación, como muestra el siguiente código: 
<asp:type_of_validator…>Text</asp:type_of_validator> 
En este módulo, observarmos la propiedad Text declarada explícitamente, 
como muestra el siguiente código: 
<asp:type_of_validator…Text="Text"> 
</asp:type_of_validator> 
La propiedad Display establece el espacio de mensajes de error desde múltiples 
controles de validación cuando se muestra el formulario Web Form en 
FlowLayout. La propiedad Display únicamente afecta a mensajes de error en la 
ubicación del control de validación. 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 Descripción 
Static Define una presentación prefijada para el mensaje de error, con cada 
control de validación ocupando un espacio, aunque no haya texto de 
mensaje de error visible. Esta opción permite definir una presentación 
fija para la página, como se muestra en la ilustración anterior. 
De forma predeterminada, Visual Studio .NET utiliza 
Display="static" para posicionar el texto del mensaje de error. 
Dynamic Permite que los controles de validación se representen en la página 
como parte del flujo de texto. El uso de esta opción evita que se 
muestren espacios en blanco en la página cuando no se invocan los 
controles de validación de entrada de datos, como se muestra en la 
ilustración anterior. En ocasiones, esta opción hace que los controles 
tengan movimiento en el formulario Web Form cuando se muestran 
mensajes de error. 
None Bloquea la visualización de mensajes de error en la ubicación del 
control de validación. 
Establecer la propiedad 
Display
Validación de entrada de datos de usuario 13 
Combinar controles de validación 
„ Pueden existir múltiples controles de validación en un único 
control de entrada de datos 
„ Únicamente RequiredFieldValidator comprueba los controles 
vacíos 
***************************** use****************************** 
En ocasiones, una única función o control de validación no es suficiente para 
verificar que el usuario ha introducido correctamente los datos en un control de 
entrada. 
Por ejemplo, un control TextBox con números de teléfono puede requerir una 
entrada, ajustarse a uno o varios modelos de número de teléfono y ser verificada 
contra una base de datos que almacena números de teléfono. En este escenario, 
TextBox debería estar enlazado a un control RequiredFieldValidator, un 
control RegularExpressionValidator con varios patrones y un control 
CustomValidator con acceso a una base de datos. 
Podemos asociar múltiples controles de validación a un único control de 
entrada de datos. Esta asociación muchos-a-uno de los controles de validación 
permite la introducción de datos del usuario para más de un requerimiento de 
validación. 
El siguiente código de ejemplo muestra un único control de entrada de datos 
para un número de teléfono. 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 código define el control TextBox que se está validando: 
<asp:TextBox id="txtPhone1" runat="server" > 
</asp:TextBox> 
Introducción 
Múltiples controles de 
validación en un único 
control de entrada 
Ejemplo
14 Validación de entrada de datos de usuario 
„ Control RequiredFieldValidator 
El siguiente código 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 código define el control RegularExpressionValidator que 
verifica que la entrada en txtPhone1 coincide con el modelo de número de 
teléfono 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 código define el control CustomValidator que invoca la 
función MyServerValidation, que compara la entrada en txtPhone1 con 
una base de datos de números de teléfono: 
<asp:CustomValidator 
id="CustomValidator1" 
OnServerValidate = "MyServerValidation" 
runat="server" 
ErrorMessage="This telephone number is not recognized" 
ControlToValidate="txtPhone1" 
Text="*"> 
</asp:CustomValidator>
Validación de entrada de datos de usuario 15 
Controles de validación de entrada de datos 
„ RequiredFieldValidator 
z InitialValue 
„ CompareValidator 
z ValueToComparar o ControlToComparar 
z Type 
z Operator 
„ RangeValidator 
z MinimumValue 
z MaximumValue 
z Type 
Código de ejemplo 
***************************** use****************************** 
Los controles de validación más sencillos son los controles 
RequiredFieldValidator, CompareValidator y RangeValidator. Todos ellos 
validan contra valores fijos o contra un segundo control de entrada de datos. 
Utilizamos el control RequiredFieldValidator para obligar a un usuario a 
introducir datos en un control de entrada de datos. Cualquier carácter es una 
respuesta válida con este control de validación. Únicamente la nula entrada de 
datos (en blanco), o espacios, constituye una entrada no válida con este control. 
El control RequiredFieldValidator se utiliza normalmente sólo en controles de 
entrada de datos necesarios para completar un proceso solicitado. Por ejemplo, 
un control RequiredFieldValidator se utilizaría para los campos 
nombre_usuario y contraseña en una página de inicio de sesión, pero no para 
información secundaria, como una oferta para convertirse en visitante favorito 
de un determinado sitio Web. 
Una opción para el control RequiredFieldValidator es tener un valor inicial 
que no sea una cadena vacía (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: 
Introducción 
Control 
RequiredFieldValidator
16 Validación 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> 
Únicamente el control RequiredFieldValidator requiere que se 
Nota 
introduzca un valor en un control. El resto de controles de validación aceptarán 
un control vacío o un espacio como respuesta válida. 
Utilizamos el control CompareValidator para probar la entrada de datos del 
usuario contra un valor específico o contra un segundo control de entrada de 
datos. El control CompareValidator a menudo se utiliza donde el riesgo de 
errores tipográficos es alto, como campos de contraseña que no muestran la 
entrada real de usuario. 
El control CompareValidator mostrará como válido un control de entrada de 
datos vacío. 
El control CompareValidator utiliza las siguientes propiedades: 
„ ValueToCompare 
La propiedad ValueToCompare se utiliza para establecer un valor 
constante con el que realizar la comparación. Utilizamos un carácter tubería 
(|) para separar varios valores. Esta propiedad se utiliza especialmente para 
validar contra valores inalterables, como un límite de edad mínima. 
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 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 
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 comparación a utilizar. 
Los operadores se especifican con el nombre de los operadores de 
comparación, como Equal, NotEqual, GreaterThan y 
GreaterThanEqual. 
Uso del control 
CompareValidator
Validación 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> 
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 mínimo y máximo se consideran válidos. El control 
RangeValidator se utiliza normalmente para verificar que el valor introducido 
(por ejemplo, edad, estatura, salario o número de hijos) coincide con un 
intervalo previsto. 
El control RangeValidator mostrará como válido un control de entrada de 
datos vacío. 
El control RangeValidator tiene las siguientes propiedades: 
„ MinimumValue 
La propiedad MinimumValue especifica el valor mínimo del intervalo 
válido para variables numéricas, o la longitud mínima de la 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 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 comparación. 
En el siguiente ejemplo, un control RangeValidator verifica que el control 
TextBox denominado txtAge tiene un valor entre 18 y 50: 
Uso del control 
RangeValidator
18 Validación de entrada de datos de usuario 
<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>
Validación 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 Números de teléfono 
z Códigos postales 
z Direcciones electrónicas 
<asp:RegularExpressionValidator … 
<asp:RegularExpressionValidator … 
ControlToValidate="ControlToValidate="US_US_PhoneNumber"… 
PhoneNumber"… 
ValidationExpression="(((d{3}) ?)|(d{3}-))?d{3}-d{4} " 
…>*</asp:RegularExpressionValidator > 
d{3}) ?)|(d{3}-))?d{3}-d{4} " 
…>*</asp:RegularExpressionValidator > 
Código de ejemplo 
***************************** use****************************** 
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. 
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 electrónicas y 
Web, números de teléfono y códigos postales. Para crear un nuevo modelo, 
seleccionar la plantilla Custom. El último modelo utilizado estará disponible 
para ser modificado. Esta característica del último utilizado ofrece una base a 
partir de la cual crear nuestro propio modelo. 
Introducción
20 Validación de entrada de datos de usuario 
Generamos nuestras propias expresiones habituales personalizadas utilizando el 
conjunto de caracteres de control que se muestran en la siguiente tabla. 
Carácter Definición 
a Debe utilizar la letra en minúscula. Las letras que no estén precedidas 
por una barra invertida (), o parte de un intervalo, son un 
requerimiento para ese valor literal. 
1 Debe utilizar el número 1. Cualquier número 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 mínimo). 
[0-n] Intervalo de valores enteros de 0 a n. 
{n} La longitud debe ser n caracteres. 
| Separa múltiples modelos válidos. 
 El siguiente carácter es un carácter comando. 
w Debe tener un carácter. 
d Debe tener un dígito. 
. Debe tener un periodo. 
Para más información sobre los caracteres de control, leer la 
“Introducción a las expresiones regulares,” en la documentación en línea de 
Referencia de JScript. 
El siguiente código de ejemplo muestra cómo podemos utilizar un control 
RegularExpressionValidator para comprobar si un usuario ha introducido una 
dirección electrónica válida: 
<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> 
Caracteres de 
expresiones habituales 
Nota 
Ejemplo de una 
expresión simple
Validación de entrada de datos de usuario 21 
Este control de validación RegularExpression comprueba un modelo 
específico, como muestra la siguiente tabla. 
Caracteres Definición 
w+ Una cadena de un carácter como mínimo. 
@ Un signo (@). 
w+ Una cadena de un carácter como mínimo. 
. Un periodo. 
w+ Una cadena de un carácter como mínimo. 
Una dirección electrónica válida para este control es: alguien@ejemplo.com. 
Una dirección electrónica no válida para este control es: alguien.com, o 
alguien@.com. 
La expresión predeterminada de correo electrónico de Visual Studio .NET es 
más compleja que el ejemplo anterior. El modelo predeterminado de correo 
electrónico también limita la separación de términos antes y después del signo 
(@) a xx.xx o xx-xx. 
La expresión regular predeterminada para direcciones electrónicas es: 
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
Este control de validación RegularExpression comprueba un modelo 
específico, como muestra la siguiente tabla. 
Caracteres Definición 
w+ Una cadena de un carácter como mínimo. 
([-+.]w+)* Puede tener uno o más guiones o un punto, y una cadena de un 
carácter como mínimo. 
@ Un signo (@). 
w+ Una cadena de un carácter como mínimo. 
([-.]w+)* Puede tener un guión o un punto, y una cadena de un carácter como 
mínimo. 
. Un punto. 
w+ Una cadena de un carácter como mínimo. 
([-.]w+)* Puede tener un guión o un punto, y una cadena de un carácter como 
mínimo. 
Una dirección electrónica válida para este control es: algu-ien@ 
ejemplo.empresa.com. 
Una dirección electrónica no válida para este control es: 
algu,ien@ejemplo..empresa.com. 
Ejemplo de una 
expresión compleja
22 Validación de entrada de datos de usuario 
Demostración: uso de los controles de validación 
„ 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 demostración, veremos cómo 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 demostración 
1. Crear un nuevo proyecto de aplicación Web denominado ValidationTst1. 
2. Cambiar a FlowLayout. 
3. Arrastrar los siguientes controles Web desde el Cuadro de herramientas a 
WebForm1: TextBox y Button. 
4. Agregar un control RequiredFieldValidator junto al control de entrada de 
datos TextBox. 
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 página. 
8. Dejar el control en blanco y hacer clic en Button1. 
Se obtiene el mensaje de error Text, y no el mensaje ErrorMessage. 
Crear un formulario Web 
Form ASP.NET con 
controles TextBox y 
Button 
Agregar un control 
RequiredFieldValidator
Validación de entrada de datos de 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 página. 
12. Dejar el valor en blanco y hacer clic en Button. 
Se debería 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 
debería 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 página está en modo de 
presentación estático, 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 página. 
16. Introducir un valor mayor que 100 o menor que 16, y hacer clic en Button. 
Se debería 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 presentación 
dinámico). 
17. Agregar un segundo control TextBox y un control 
RegularExpressionValidator junto a él. 
18. Hacer clic con el botón 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 Dirección electrónica no 
válida. 
b. En la propiedad ControlToValidate, seleccionar TextBox2. 
c. En la propiedad ValidationExpression, seleccionar Internet E-mail 
Address. 
19. Guardar, generar y examinar la página. 
Agregar un control 
RangeValidator 
Agregar un segundo 
control TextBox y un 
control Regular 
ExpressionValidator
24 Validación de entrada de datos de usuario 
Escribir una dirección electrónica incorrecta en el segundo cuadro de texto y 
hacer clic en Button. Se debería obtener el mensaje de texto Dirección 
electrónica no válida del control RegularExpressionValidator. 
20. Seleccionar Ver fuente y mostrar la validación del lado del cliente HTML.
Validación 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 
z OnServerValidate 
„ Validar con: 
z Fórmula 
z Datos 
z Objetos COM 
z Servicio Web 
Código de ejemplo 
***************************** use****************************** 
Utilizamos el control CustomValidator cuando deseamos utilizar nuestra 
propia lógica de validación personalizada para comprobar los datos 
introducidos por el usuario contra una variable, fórmula, o la entrada desde una 
segunda fuente. El control CustomValidator se utiliza a menudo para 
situaciones como la verificación de contraseñas, en las que los datos 
introducidos por el usuario se comparan con una contraseña almacenada en una 
base de datos de usuarios. 
El control CustomValidator valida en el lado del servidor, y puede validar en 
el lado del cliente si el navegador soporta la validación. A diferencia de otros 
controles de validación, donde ASP.NET crea los scripts de validación de 
cliente y servidor, debemos escribir explícitamente los scripts de validación 
para el control CustomValidator. Establecemos el control CustomValidator 
como válido o no válido 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 lógica con el código 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 código en el servidor, es importante comprobar que existe 
coherencia lógica con el script del lado del cliente. 
Introducción 
Validación del lado del 
cliente y del lado del 
servidor
26 Validación de entrada de datos de usuario 
El siguiente código de ejemplo muestra procedimientos del lado del servidor y 
del lado del cliente para un control CustomValidator y verificará que un 
número introducido en un control de entrada de datos es un número par: 
<asp: CustomValidator… 
ClientValidationFunction = "MyClientFunction" 
OnServerValidate = "MyServerFunction" /> 
„ Procedimiento del lado del cliente 
El siguiente código JScript está pensado para ejecutarse en Internet Explorer 
6, y verificará que un número es par: 
<script language = "Jscript"> 
function MyClientFunction(source, arguments) { 
alert("Ejecución 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 código está diseñado para ejecutarse en un servidor .NET, y 
verificará que un número es par: 
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 
private void MyServerFunction(object objSource, 
ServerValidateEventArgs args) 
{ 
int intValue = Convert.ToInt16(args.Value); 
if (intValue%2 == 0) 
{ 
args.IsValid = true; 
} 
else 
{ 
args.IsValid = false; 
} 
} 
Ejemplo 
Visual Basic .NET 
C#
Validación de entrada de datos de usuario 27 
Demostración: uso del control CustomValidator 
„ Agregar un control CustomValidator 
„ Escribir el código del lado del servidor 
„ Escribir el script en el lado del cliente 
„ Probar el resultado 
***************************** use****************************** 
En esta demostración, veremos cómo utilizar un control CustomValidator. 
El código para esta demostración se encuentra en el proyecto Demo06VB o 
Demo06CS que se pueden encontrar dentro del fichero demos06.zip 
Ë Ejecutar esta demostración 
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. 
2. Agregar un control CustomValidator al formulario Web Form . 
3. En la propiedad Text del control CustomValidator, escribir Es un número 
impar. 
4. Establecer la propiedad ControlToValidate en TextBox1. 
5. Hacer doble clic en CustomValidator para abrir el procedimiento de evento 
del lado del servidor y agregar el siguiente código: 
Dim intValue As Integer = args.Value 
If intValue mod 2 = 0 Then 
args.IsValid = True 
Else 
args.IsValid = False 
End If 
Introducción 
Agregar un control 
CustomValidator 
Escribir el código del 
lado del servidor 
Visual Basic .NET
28 Validación de entrada de datos de 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 automáticamente debería tener el nombre 
CustomValidator1_ServerValidate, y dos parámetros: source (tipo 
Object) y args (tipo ServerValidateEventArgs). 
6. En la propiedad ClientValidationFunction del control CustomValidator, 
escribir MyClientValidation. 
7. Abrir el código fuente HTML de la página CustomValidator.aspx (y no 
CustomValidator.aspx.vb). 
8. Quitar el comentario del siguiente código que se encuentra justo después de 
la etiqueta <head>. Este ejemplo está en JScript: 
function MyClientValidation(source, arguments) 
{ 
alert("Ejecución en el cliente"); 
var intValue = arguments.Value; 
if (intValue % 2 == 0) 
{ 
arguments.IsValid = true; 
} else { 
arguments.IsValid = false; 
} 
} 
Verificar que el navegador de destino es Internet Explorer 5. En la vista de 
Diseño 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 código del lado del 
servidor para evitar el viaje de ida y vuelta al servidor con la página si esta 
propiedad está establecida a True y el navegador cliente es Internet 
Explorer 4 o posterior. 
C# 
Escribir el script del 
lado del cliente 
Probar el resultado
Validación de entrada de datos de usuario 29 
10. Generar y examinar CustomValidator.aspx. 
11. Escribir un número en el cuadro de texto. 
12. Se debería obtener el cuadro de mensaje Ejecución en el cliente al hacer 
clic en Button. Además, se debería obtener el mensaje Es un número 
impar cuando el número sea impar. 
13. Establecer la propiedad EnableClientScript del control CustomValidator 
en False, de forma que únicamente se ejecute el código del lado del 
servidor. 
14. Generar y examinar la página. 
15. En este momento no se debería obtener el cuadro de mensaje, ya que se está 
ejecutando el código en el lado del servidor. Sin embargo, seguirá 
apareciendo el mensaje Es un número impar cuando el número sea impar.
30 Validación de entrada de datos de usuario 
Lección: validación de páginas 
„ Uso de la propiedad Page.IsValid 
„ Uso del control ValidationSummary 
„ Demostración: uso de la propiedad Page.IsValid y del 
control ValidationSummary 
***************************** use****************************** 
En esta lección, estudiaremos cómo utilizar la propiedad Page.IsValid y el 
control ValidationSummary para verificar que todos los controles de 
validación de un formulario ASP.NET Web Form son válidos antes de que se 
inicie el proceso. 
En esta lección, aprenderemos a: 
„ Utilizar la propiedad Page.IsValid para determinar si todos los controles de 
validación de entrada de datos de una página son válidos. 
„ Utilizar el control ValidationSummary para mostrar un resumen de 
mensajes de error en una página. 
Introducción 
Objetivos de la lección
Validación de entrada de datos de usuario 31 
Uso de la propiedad Page.IsValid 
Examina todos los controles de validación 
Sub cmdSubmit_Click(s As Object, e As EventArgs) 
Sub cmdSubmit_Click(s As Object, e As EventArgs) 
If Page.IsValid Then 
If Page.IsValid Then 
Message.Text = "Page is valid!" 
' Perform database updates or other logic here 
End If 
End Sub 
Message.Text = "Page is valid!" 
' Perform database updates or other logic here 
End If 
End Sub 
private void cmdSubmit_Click(object s, System.EventArgs e) 
{ if (Page.IsValid) 
private void cmdSubmit_Click(object s, System.EventArgs e) 
{ if (Page.IsValid) 
{ Message.Text = "Page is Valid!"; 
// Perform database updates or other logic here 
} 
} 
{ Message.Text = "Page is Valid!"; 
// Perform database updates or other logic here 
} 
} 
***************************** use****************************** 
.NET permite verificar que todos los controles de una página son válidos antes 
de que realicen alguna acción. Esta verificación puede llevarse a cabo en el 
cliente o en el servidor, dependiendo del navegador que se esté utilizando. La 
verificación del lado del cliente se realiza con el control ValidationSummary, 
mientras que la verificación del lado del servidor se realiza con la propiedad 
Page.IsValid. 
Para determinar si todos los controles de validación de una página son válidos, 
comprobamos la propiedad IsValid de la página en tiempo de ejecución. La 
propiedad IsValid se vincula a los valores de todos los controles de validación 
que se encuentran en la página (utilizando un AND lógico). Si algún control de 
validación no es válido, 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 válidos y si el formulario Web Form está 
preparado para seguir con la lógica de negocio. 
Los controles de validación verifican las entradas del usuario, establecen un 
estado de error y producen mensajes de error. Sin embargo, los controles de 
validación no cambian el flujo de procesamiento de páginas. Por ejemplo, los 
controles de validación no evitan nuestro código si detectan un error en los 
datos introducidos por el usuario. En lugar de ello, probamos el estado de los 
controles en nuestro código antes de realizar lógica específica de aplicación. Si 
detectamos un error, evitamos que nuestro código se ejecute; la página seguirá 
procesándose y se devuelve al usuario con mensajes de error. 
La información de validación no está disponible durante la inicialización 
de una página o durante la fase de carga. Para obtener información sobre los 
estados de página, examinar “Estados de procesamiento de páginas de 
formularios Web Forms” en la documentación de Visual Studio .NET. 
Introducción 
Uso de la propiedad 
Page.IsValid 
Nota
32 Validación de entrada de datos de usuario 
El siguiente ejemplo muestra el controlador de eventos de un botón. El código 
verifica la propiedad IsValid de toda la página. No es necesario para una 
cláusula Else, ya que la página será enviada de vuelta automáticamente al 
navegador y los controles de validación mostrarán sus propios mensajes de 
error: 
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 
private void cmdSubmit_Click(object s, System.EventArgs e) 
{ 
if (Page.IsValid) 
{ 
Message.Text = "Page is Valid!"; 
// Perform database updates or other logic here 
} 
} 
Ejemplo 
Visual Basic .NET 
C#
Validación de entrada de datos de usuario 33 
Uso del control ValidationSummary 
„ Recopila los mensajes de error de todos los controles 
de validación de la página 
„ Puede mostrar mensajes de texto y de error 
„ Utilizar Text="*" para indicar la ubicación del error 
<asp:ValidationSummary id="valSummary" 
runat="server" 
HeaderText="These errors were found:" 
ShowSummary="True" 
DisplayMode="List"/> 
<asp:ValidationSummary id="valSummary" 
runat="server" 
HeaderText="These errors were found:" 
ShowSummary="True" 
DisplayMode="List"/> 
***************************** use****************************** 
El control ValidationSummary muestra cuando la propiedad Page.IsValid 
devuelve False. Se contacta con cada control de validación de la página y el 
control ValidationSummary reúne los mensajes de ErrorMessage. 
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 viñetas o 
un único párrafo. Los controles ValidationSummary se ubican normalmente 
cerca del botón Submit de forma que todos los mensajes de error sean 
fácilmente visibles para el usuario cuando se disparen los controles de 
validación de entrada de datos. 
El siguiente código HTML muestra un control ValidationSummary típico: 
<asp:ValidationSummary id="valSummary" 
runat="server" 
HeaderText="These errors were found:" 
ShowSummary="True" 
DisplayMode="List" /> 
Cuando se utiliza el control ValidationSummary, la propiedad Text (si se 
utiliza) se muestra en la ubicación del control de validación, mientras que la 
propiedad ErrorMessage se muestra en la presentación 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 
descripción del error de entrada de datos, que normalmente se ubica cerca del 
evento que dispara el control. 
Introducción 
Muestra mensajes de 
texto y de error 
Uso de * para localizar 
errores
34 Validación de entrada de datos de usuario 
La siguiente ilustración muestra un par de campos de contraseña con varios 
controles de validación de entrada de datos y un control ValidationSummary. 
Ejemplo
Validación de entrada de datos de usuario 35 
Demostración: uso de la propiedad Page.IsValid y del control 
ValidationSummary 
„ Abrir una página ASP.NET con múltiples 
cuadros de texto y controles de 
validación 
„ Agregar un control ValidationSummary 
„ Agregar un script que utilice la propiedad 
Page.IsValid 
***************************** use****************************** 
En esta demostración, veremos cómo utilizar el método Page.IsValid y el 
control Validation Summary. 
Los campos de esta demostración se encuentran en el proyecto Demo06VB o 
Demo06CS que se pueden encontrar dentro del fichero demos06.zip 
Ë Ejecutar esta demostración 
1. Abrir el formulario Web Form denominado ValidationSummary.aspx en 
Visual Studio .NET. 
La página ya contiene dos controles TextBox. Hay un control 
RequiredFieldValidator y un control RangeValidator, que validan el 
primer cuadro de texto. La página también contiene un control 
RequiredFieldValidator y un control RegularExpressionValidator, que 
validan el segundo cuadro de texto. Además, hay un botón Submit y un 
Label. 
2. Arrastrar el control ValidationSummary a la parte inferior de la página. 
3. Hacer doble clic en el control Button para abrir el controlador de eventos 
Click, y eliminar el comentario del siguiente código: 
If Page.IsValid Then 
lblMessage.Text = "Page is valid!" 
End If 
Introducción 
Abrir una página 
ASP.NET 
Agregar un control 
Validation 
Summary 
Agregar código para 
probar la validez de la 
página 
Visual Basic .NET 
C#
36 Validación de entrada de datos de usuario 
if (Page.IsValid) 
{ 
lblMessage.Text = "Page is valid!"; 
} 
4. Guardar, generar y examinar la página ValidationSummary.aspx. 
Deberíamos ver el mensaje Page is valid! cuando toda la página sea válida.

Weitere ähnliche Inhalte

Andere mochten auch

Notas sobre geometria
Notas sobre geometriaNotas sobre geometria
Notas sobre geometria2805666
 
Diseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaDiseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaOscar Hernando Sanchez Roa
 
Programa escuelas de calidad.pdf
Programa escuelas de calidad.pdfPrograma escuelas de calidad.pdf
Programa escuelas de calidad.pdfCinthia Vera
 
Como exponer adecuadamente un tema
Como exponer adecuadamente un temaComo exponer adecuadamente un tema
Como exponer adecuadamente un temaVianey Ruiz
 
s+b-Best Business Books 2012
s+b-Best Business Books 2012s+b-Best Business Books 2012
s+b-Best Business Books 2012Theodore Kinni
 
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน 2557 1
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน  2557 1 วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน  2557 1
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน 2557 1 Nanthapong Sornkaew
 
Measurement and model validation of specific heat of xanthan gum using joules...
Measurement and model validation of specific heat of xanthan gum using joules...Measurement and model validation of specific heat of xanthan gum using joules...
Measurement and model validation of specific heat of xanthan gum using joules...eSAT Journals
 

Andere mochten auch (11)

Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
Histologia
HistologiaHistologia
Histologia
 
Notas sobre geometria
Notas sobre geometriaNotas sobre geometria
Notas sobre geometria
 
Diseño y construcción de un software para una tienda
Diseño y construcción de un software para una tiendaDiseño y construcción de un software para una tienda
Diseño y construcción de un software para una tienda
 
Programa escuelas de calidad.pdf
Programa escuelas de calidad.pdfPrograma escuelas de calidad.pdf
Programa escuelas de calidad.pdf
 
Como exponer adecuadamente un tema
Como exponer adecuadamente un temaComo exponer adecuadamente un tema
Como exponer adecuadamente un tema
 
s+b-Best Business Books 2012
s+b-Best Business Books 2012s+b-Best Business Books 2012
s+b-Best Business Books 2012
 
Proteinas do leite
Proteinas do leiteProteinas do leite
Proteinas do leite
 
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน 2557 1
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน  2557 1 วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน  2557 1
วารสารกฎหมายขนส่งและพาณิชยนาวี ปี 9 ฉบับที่ 9 เดือนพฤศจิกายน 2557 1
 
Ap aimp
Ap aimpAp aimp
Ap aimp
 
Measurement and model validation of specific heat of xanthan gum using joules...
Measurement and model validation of specific heat of xanthan gum using joules...Measurement and model validation of specific heat of xanthan gum using joules...
Measurement and model validation of specific heat of xanthan gum using joules...
 

Ähnlich wie Validando las entradas de usuario

6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuarioJaime Acurio
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosAntonio Palomares Sender
 
Validación de datos.
Validación de datos.Validación de datos.
Validación de datos.Alex Florez
 
Pagos electrónicos
Pagos electrónicosPagos electrónicos
Pagos electrónicosRené Olivo
 
Cgi mi presentacion
Cgi mi presentacionCgi mi presentacion
Cgi mi presentacionFlashnet S.A
 
Actividad autonoma 8 de julio de 2015 - Erick lozada
Actividad autonoma 8 de julio de 2015 - Erick lozadaActividad autonoma 8 de julio de 2015 - Erick lozada
Actividad autonoma 8 de julio de 2015 - Erick lozadaErick Paul Lozada Peñarreta
 
Pruebas de funcionalidades y optimización de páginas web
Pruebas de funcionalidades y optimización de páginas webPruebas de funcionalidades y optimización de páginas web
Pruebas de funcionalidades y optimización de páginas webttounkyo
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamosinvestigacionformativaut
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamosinvestigacionformativaut
 
14. Seguridad En Aplicaciones Web Asp.Net
14.  Seguridad En Aplicaciones Web Asp.Net14.  Seguridad En Aplicaciones Web Asp.Net
14. Seguridad En Aplicaciones Web Asp.Netguest3cf6ff
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
Controles de validación en asp
Controles de validación en aspControles de validación en asp
Controles de validación en aspMaria Tomalá
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI Informática
 
Patrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones WebPatrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones Webguesta7f40
 

Ähnlich wie Validando las entradas de usuario (20)

6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuario
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datos
 
Validación de datos.
Validación de datos.Validación de datos.
Validación de datos.
 
Facturación Electrónica para Desarrolladores
Facturación Electrónica para  DesarrolladoresFacturación Electrónica para  Desarrolladores
Facturación Electrónica para Desarrolladores
 
Pagos electrónicos
Pagos electrónicosPagos electrónicos
Pagos electrónicos
 
Cgi mi presentacion
Cgi mi presentacionCgi mi presentacion
Cgi mi presentacion
 
Actividad autonoma 8 de julio de 2015 - Erick lozada
Actividad autonoma 8 de julio de 2015 - Erick lozadaActividad autonoma 8 de julio de 2015 - Erick lozada
Actividad autonoma 8 de julio de 2015 - Erick lozada
 
Factura ElectróNica
Factura ElectróNicaFactura ElectróNica
Factura ElectróNica
 
Validación de formularios
Validación de formulariosValidación de formularios
Validación de formularios
 
Pruebas de funcionalidades y optimización de páginas web
Pruebas de funcionalidades y optimización de páginas webPruebas de funcionalidades y optimización de páginas web
Pruebas de funcionalidades y optimización de páginas web
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamos
 
Proyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De ReclamosProyecto De Analisis Y Sistema De Reclamos
Proyecto De Analisis Y Sistema De Reclamos
 
Cliente Servidor
Cliente ServidorCliente Servidor
Cliente Servidor
 
Prg4 3x03
Prg4 3x03Prg4 3x03
Prg4 3x03
 
14. Seguridad En Aplicaciones Web Asp.Net
14.  Seguridad En Aplicaciones Web Asp.Net14.  Seguridad En Aplicaciones Web Asp.Net
14. Seguridad En Aplicaciones Web Asp.Net
 
Desarrollo de aplicaciones web
Desarrollo de aplicaciones webDesarrollo de aplicaciones web
Desarrollo de aplicaciones web
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Controles de validación en asp
Controles de validación en aspControles de validación en asp
Controles de validación en asp
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
Patrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones WebPatrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones Web
 

Kürzlich hochgeladen

explicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptexplicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptjosemanuelcremades
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialeshanda210618
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaIvannaMaciasAlvarez
 
sociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercerosociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre terceroCEIP TIERRA DE PINARES
 
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdfceeabarcia
 
U2_EA2_descargable TICS PRESENCIAL 2.pdf
U2_EA2_descargable TICS PRESENCIAL 2.pdfU2_EA2_descargable TICS PRESENCIAL 2.pdf
U2_EA2_descargable TICS PRESENCIAL 2.pdfJavier Correa
 
ficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariaficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariamichel carlos Capillo Dominguez
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCarolVigo1
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 
Adoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAdoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAlejandrino Halire Ccahuana
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaIGNACIO BALLESTER PARDO
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaElizabeth252489
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaTatiTerlecky1
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxKarenSepulveda23
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCERO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCEROCIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCERO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCEROCEIP TIERRA DE PINARES
 
Presentación: Actividad de Diálogos adolescentes.pptx
Presentación: Actividad de  Diálogos adolescentes.pptxPresentación: Actividad de  Diálogos adolescentes.pptx
Presentación: Actividad de Diálogos adolescentes.pptxNabel Paulino Guerra Huaranca
 
Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónIES Vicent Andres Estelles
 

Kürzlich hochgeladen (20)

explicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptexplicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.ppt
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comerciales
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad pública
 
sociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercerosociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercero
 
Actividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 PereiraActividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 Pereira
 
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
 
U2_EA2_descargable TICS PRESENCIAL 2.pdf
U2_EA2_descargable TICS PRESENCIAL 2.pdfU2_EA2_descargable TICS PRESENCIAL 2.pdf
U2_EA2_descargable TICS PRESENCIAL 2.pdf
 
ficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariaficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primaria
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacion
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 
Adoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAdoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendiciones
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primaria
 
Sesión de clase ES: Adoración sin fin...
Sesión de clase ES: Adoración sin fin...Sesión de clase ES: Adoración sin fin...
Sesión de clase ES: Adoración sin fin...
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección ediba
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptx
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCERO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCEROCIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCERO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE TERCERO
 
Presentación: Actividad de Diálogos adolescentes.pptx
Presentación: Actividad de  Diálogos adolescentes.pptxPresentación: Actividad de  Diálogos adolescentes.pptx
Presentación: Actividad de Diálogos adolescentes.pptx
 
Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificación
 

Validando las entradas de usuario

  • 1. Validación de entrada de datos de usuario Índice Descripción 1 Lección: Descripción de la validación de entrada de datos del usuario 2 Lección: uso de los controles de validación 8 Lección: validación de páginas 30
  • 3. Validación de entrada de datos de usuario 1 Descripción „ Descripción de la validación de entrada de datos de usuario „ Uso de controles de validación „ Validación de páginas ***************************** use****************************** 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 mínimo, retrasará al usuario, y puede incluso terminar nuestra aplicación 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 comprobación, enlazamos al menos un control de validación 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 módulo, estudiaremos los controles de validación de entrada de datos disponibles en Microsoft® ASP.NET. También estudiaremos cómo aplicar de forma eficaz estos controles a un formulario Web Form con ASP.NET utilizando Microsoft Visual Studio® .NET. En este módulo, aprenderemos a: „ Identificar cuándo es apropiada la validación de entrada de datos en los formularios Web Forms. „ Utilizar controles de validación de entrada de datos para verificar los datos introducidos por el usuario en un formulario Web Form. „ Verificar que todos los controles de validación de una página son válidos. Introducción Objetivos
  • 4. 2 Validación de entrada de datos de usuario Lección: validación de entrada de datos del usuario „ ¿Qué es es la validación de entrada de datos? „ Validación del lado del cliente y del lado del servidor „ Controles de validación ASP.NET ***************************** use****************************** En esta lección, estudiaremos cómo la validación 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 petición sea procesada en el servidor. También estudiaremos los tipos de controles de validación de entrada de datos disponibles en ASP.NET. En esta lección, aprenderemos a: „ Explicar el concepto de validación. „ Explicar la diferencia entre validación del lado del cliente y validación del lado del servidor. „ Combinar los tipos apropiados de controles de validación ASP.NET para determinados requerimientos de entrada. Introducción Objetivos de la lección
  • 5. Validación de entrada de datos de usuario 3 ¿Qué es la validación de entrada de datos? „ Verifica que el usuario ha introducido correctamente el valor de un control „ Bloquea el procesamiento de una página hasta que todos los controles son válidos „ Evita el spoofing o añadir código mal intencionado ***************************** use****************************** La validación 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 validación 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 envíos incorrectos o caídas 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 validación de entrada de datos pueden mejorar enormemente el uso de una aplicación Web, mejorando por tanto la percepción de usuario de la calidad global del sitio Web. Los controles de validación de entrada de datos actúan 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 validación de entrada de datos de un formulario Web Form actúan como filtros de datos antes de que la página o la lógica de servidor sea procesada. En ASP.NET, la validación 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 validación. Si el navegador soporta la validación del lado del cliente, los controles de validación de entrada de datos realizan la comprobación de errores en el cliente antes de enviar los datos al servidor. El usuario recibe información inmediata sobre si los datos que ha introducido son válidos o no. Por motivos de seguridad, toda validación de entrada de datos que se ejecute en el lado del cliente se repite a continuación en el lado del servidor. La validación 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 número de caracteres, el uso de dígitos y/o letras, el intervalo del valor, una cadena específica de caracteres, o una fórmula matemática. Introducción Verificar valores de control
  • 6. 4 Validación de entrada de datos de usuario Por ejemplo, un control de entrada de datos que solicita al usuario que introduzca su número de teléfono podría tener un control de validación de entrada de datos adjunto que verificara que el usuario únicamente introduce números en un formato basado en el número de teléfono. Introducir letras o muy pocos números activaría el control de validación de entrada de datos para validar la entrada de datos. 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 página haya sido reenviada para su procesamiento. Los controles de validación protegen los formularios Web Forms de dos importantes peligros: spoofing y código mal intencionado. Ejecutando todos los controles de validación en el lado del servidor, con independencia de la validación del lado del cliente, ASP.NET protege de las siguientes amenazas: „ Spoofing Spoofing es cuando un usuario modifica la página HTML (Hypertext Markup Language) que se le ha enviado, y devuelve valores que hacen que parezca que ha introducido datos válidos o pasado una comprobación de autorización. La validación ú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 código de validación del lado del cliente, lo que crea un falso nivel de autorización. Con ASP.NET, la validación 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 validación. „ Código mal intencionado Cuando un usuario puede agregar texto ilimitado a una página Web mediante controles de entrada de datos de usuario que no dispongan de validación de entrada de datos, puede introducir código mal intencionado. Cuando el usuario envía la siguiente solicitud al servidor, este código añadido podría 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 validación, un usuario mal intencionado podría explotar esta falta de validación para provocar varios problemas, incluyendo: • Generar un error de tipo buffer overrun y una caída 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, contraseñas y números de tarjetas de crédito. Procesamiento de bloque de errores Spoofing y código mal intencionado
  • 7. Validación de entrada de datos de usuario 5 Validación del lado del cliente y del lado del servidor „ ASP.NET puede generar validación del lado del cliente y del lado del servidor „ Validación del lado del cliente z Dependiente de la versión del navegador z Respuesta inmediata z Reduce los ciclos de postback „ Validación del lado del servidor z Repite toda la validación del lado del cliente z Puede validar contra datos almacenados El usuario introduce datos ¿Válido? ¿Válido? No No Sí Sí Mensaje de error Cliente Servidor Aplicación Web procesada ***************************** use****************************** La validación de entrada de datos puede tener lugar tanto en el servidor como en el cliente. Aunque ASP.NET siempre requiere validación del lado del servidor, la validación del lado del cliente es una opción con algunos navegadores. Los controles de validación de ASP.NET disponen de soporte tanto del lado del cliente como del lado del servidor. La validación del lado del cliente utiliza JavaScript y scripts DHTML (HTML Dinámico). La validación del lado del servidor puede ser desarrollada en cualquier lenguaje basado en Microsoft .NET, y se compila a Microsoft Intermediate Language (MSIL). Tanto la validación del lado del cliente como la validación del lado del servidor utilizan el mismo modelo de programación, aunque algunas variaciones entre los lenguajes pueden crear pequeñas diferencias en las funciones de validación. La validación 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 validación 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 validación del lado del servidor. Escribir múltiples versiones de código de validación para soportar tanto el servidor como los diferentes navegadores puede exigir mucho tiempo al desarrollador. Los controles de validación ASP.NET eliminan este problema ya que la lógica de validación se encapsula en los controles. Los controles crean código específico para los navegadores de forma que los usuarios con soporte de scripts del lado del cliente tendrán validación de entrada de datos. Los navegadores que no soporten scripts no recibirán los scripts de validación en el lado del cliente. En versiones de navegador que soporten la validación de entrada de datos, como Microsoft Internet Explorer 4 o posterior, la validación del lado del cliente se produce cuando el usuario hace clic en el botón Submit. La página no se publicará de nuevo en el servidor hasta que toda la validación del lado del Introducción Validación del lado del cliente
  • 8. 6 Validación 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 validación del lado del cliente para el control de entrada de datos completo. Esta validación utilizando el TABULADOR ofrece al usuario información inmediata sobre los datos que ha introducido. Todos los controles de validación 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 página se envía de nuevo al servidor. Esta repetición evita el spoofing de usuarios que no ejecutan el script del lado del cliente e intentan introducir datos no válidos. Los controles de validación del lado del servidor pueden escribirse en cualquier lenguaje basado en .NET, y se compilan en MSIL antes de ser ejecutados en el servidor. Además de validar el formato de los datos introducidos, los controles de validación del lado del servidor pueden utilizarse para comparar la entrada de datos del usuario con datos almacenados. Esta funcionalidad permite validación contra diversos elementos, como contraseñas previamente almacenadas o restricciones geográficas, incluyendo las leyes y los impuestos locales. Validación del lado del servidor
  • 9. Validación de entrada de datos de usuario 7 Controles de validación ASP.NET ASP.NET proporciona controles de validación para: „ Comparar valores „ Comparar con una fórmula personalizada „ Comparar con un intervalo „ Comparar con un modelo de expresión habitual „ Requerir entrada de datos por parte del usuario „ Resumir los controles de validación de una página ***************************** use****************************** ASP.NET incluye los controles de validación que se muestran en la siguiente tabla. Control de validación Función 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 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 expresión habitual. Este control de validación permite comprobar secuencias predecibles de caracteres, como números de la seguridad social, direcciones electrónicas, números de teléfono y códigos postales. Visual Studio .NET proporciona modelos predefinidos para expresiones habituales como números de teléfono. 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 de datos aceptarán un control vacío como respuesta válida. ValidationSummary Muestra un resumen de todos los errores de validación para todos los controles de validación de la página. 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. Controles de validación
  • 10. 8 Validación de entrada de datos de usuario Lección: uso de los controles de validación „ Agregar controles de validación a un formulario Web Form „ Posicionar controles de validación en un formulario Web Form „ Combinar controles de validación „ Controles de validación para la entrada de datos „ Uso del control RegularExpressionValidator „ Demostración: uso de controles de validación „ Uso del control CustomValidator „ Demostración: uso del control CustomValidator ***************************** use****************************** En esta lección, estudiaremos cómo aplicar controles de validación a controles de entrada de datos en un formulario Web Form ASP.NET. Validar los datos introducidos por el usuario solía ser un proceso difícil. Para cada control de entrada de datos, era necesario escribir primero código de validación para el servidor en un determinado lenguaje. A continuación, si se realizaba validación en el lado del cliente, necesitábamos escribir la validación equivalente en el lado del cliente en un script diferente para cada navegador. ASP.NET y Visual Studio .NET han hecho más fácil la validación de la entrada de usuario al proporcionar controles de validación que proporcionan código en el lado del servidor y en el lado del cliente al agregarlos a nuestro formulario Web Form. En esta lección, aprenderemos a: „ Agregar un control de validación a un formulario Web Form y asociarlo a un control de entrada de datos. „ Posicionar los controles de validación en una página Web para soportar el uso correcto del control de entrada de datos asociado. „ Utilizar los controles de validación 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 múltiples controles de validación a un único control de entrada de datos. Introducción Objetivos de la lección
  • 11. Validación de entrada de datos de usuario 9 Agregar controles de validación a un formulario Web Form 1. Agregar un control de validación 2. Seleccionar el control de entrada de datos para validar 3. Establecer propiedades de validación 1 1 2 2 3 3 <<aasspp::TTeexxttBBooxx iidd==""ttxxttNNaammee"" rruunnaatt==""sseerrvveerr"" //>> <asp:Type_of_Validator id="Validator_id" runat="server" ControlToValidate="txtName" ErrorMessage="Message_for_error_summary" Display="static|dynamic|none" Text="Text_to_display_by_input_control"> </asp:Type_of_Validator> <asp:Type_of_Validator id="Validator_id" runat="server" ControlToValidate="txtName" ErrorMessage="Message_for_error_summary" Display="static|dynamic|none" Text="Text_to_display_by_input_control"> </asp:Type_of_Validator> ***************************** use****************************** Como todos los controles de validación de entrada de datos comparten un modelo de objetos común, el proceso de agregar controles de validación a una página es el mismo para todos los controles. En Visual Studio .NET, simplemente arrastramos el control de validación de entrada a una página, seleccionamos el control de entrada a validar y establecemos las propiedades. Para agregar un control de validación, abrimos el cuadro de herramientas del formulario Web Form, seleccionamos uno de los controles de validación disponibles y lo arrastramos junto al control de entrada de datos que deseamos 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 múltiples controles de validación a un único control de entrada de datos. Todos los controles de validación 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. Una vez el control de validación de entrada de datos está ubicado en la página, utilizamos la ventana Propiedades para introducir las propiedades específicas del control, como la expresión de validación, el mensaje de error y mensaje de texto. La sintaxis compartida para los controles de validación 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> Introducción Agregar un control de validación Seleccionar el control de entrada de datos para validar Establecer las propiedades de validación
  • 12. 10 Validación de entrada de datos de usuario Cada control de validación tiene propiedades únicas adicionales que definen el modo de funcionamiento. Dos de las propiedades que comparten todos los controles de validación, a excepción del control ValidationSummary, son Type y EnableClientScript: „ Type La propiedad Type es el tipo de datos que se validará. Visual Studio .NET ajustará automáticamente 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 validación del lado del cliente. El valor predeterminado de esta propiedad es true. ASP.NET crea procedimientos de validación en el lado del cliente en Microsoft JScript® .NET, y crea procedimientos de validación del lado del servidor en C# y Microsoft Visual Basic® .NET. Esta diferencia de lenguaje puede provocar pequeñas diferencias entre las implementaciones de controles de validación en el lado del cliente y en el lado del servidor.
  • 13. Validación de entrada de datos de usuario 11 Posicionar controles de validación en un formulario Web Form „ Crear mensajes de error „ Seleccionar modo de presentación z Estático z Dinámico ***************************** use****************************** Los controles de validación de entrada de datos pueden mostrar un mensaje de error cuando se produce una violación en la entrada de datos. Es importante posicionar los controles de validación 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 validación en la página donde debe aparecer el mensaje de error. El código HTML estándar para un control de validación 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> Los controles de validación de entrada de datos ASP.NET contienen dos propiedades de mensajes de error: una propiedad ErrorMessage y una propiedad Text, pudiéndose mostrar ambas en la ubicación del control de validación 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 ubicación de un control de validación cuando éste se dispara, si no está establecida la propiedad Text. Este mensaje también se incluirá en un control ValidationSummary si se utiliza uno en el formulario Web Form. Introducción Mensajes de error
  • 14. 12 Validación de entrada de datos de usuario „ Propiedad Text La propiedad Text es el texto alternativo que se mostrará 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 mensajes de error, normalmente se utiliza un asterisco (*) rojo a la derecha del control de entrada de datos no válido para indicar dónde 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 validación, como muestra el siguiente código: <asp:type_of_validator…>Text</asp:type_of_validator> En este módulo, observarmos la propiedad Text declarada explícitamente, como muestra el siguiente código: <asp:type_of_validator…Text="Text"> </asp:type_of_validator> La propiedad Display establece el espacio de mensajes de error desde múltiples controles de validación cuando se muestra el formulario Web Form en FlowLayout. La propiedad Display únicamente afecta a mensajes de error en la ubicación del control de validación. 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 Descripción Static Define una presentación prefijada para el mensaje de error, con cada control de validación ocupando un espacio, aunque no haya texto de mensaje de error visible. Esta opción permite definir una presentación fija para la página, como se muestra en la ilustración anterior. De forma predeterminada, Visual Studio .NET utiliza Display="static" para posicionar el texto del mensaje de error. Dynamic Permite que los controles de validación se representen en la página como parte del flujo de texto. El uso de esta opción evita que se muestren espacios en blanco en la página cuando no se invocan los controles de validación de entrada de datos, como se muestra en la ilustración anterior. En ocasiones, esta opción hace que los controles tengan movimiento en el formulario Web Form cuando se muestran mensajes de error. None Bloquea la visualización de mensajes de error en la ubicación del control de validación. Establecer la propiedad Display
  • 15. Validación de entrada de datos de usuario 13 Combinar controles de validación „ Pueden existir múltiples controles de validación en un único control de entrada de datos „ Únicamente RequiredFieldValidator comprueba los controles vacíos ***************************** use****************************** En ocasiones, una única función o control de validación no es suficiente para verificar que el usuario ha introducido correctamente los datos en un control de entrada. Por ejemplo, un control TextBox con números de teléfono puede requerir una entrada, ajustarse a uno o varios modelos de número de teléfono y ser verificada contra una base de datos que almacena números de teléfono. En este escenario, TextBox debería estar enlazado a un control RequiredFieldValidator, un control RegularExpressionValidator con varios patrones y un control CustomValidator con acceso a una base de datos. Podemos asociar múltiples controles de validación a un único control de entrada de datos. Esta asociación muchos-a-uno de los controles de validación permite la introducción de datos del usuario para más de un requerimiento de validación. El siguiente código de ejemplo muestra un único control de entrada de datos para un número de teléfono. 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 código define el control TextBox que se está validando: <asp:TextBox id="txtPhone1" runat="server" > </asp:TextBox> Introducción Múltiples controles de validación en un único control de entrada Ejemplo
  • 16. 14 Validación de entrada de datos de usuario „ Control RequiredFieldValidator El siguiente código 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 código define el control RegularExpressionValidator que verifica que la entrada en txtPhone1 coincide con el modelo de número de teléfono 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 código define el control CustomValidator que invoca la función MyServerValidation, que compara la entrada en txtPhone1 con una base de datos de números de teléfono: <asp:CustomValidator id="CustomValidator1" OnServerValidate = "MyServerValidation" runat="server" ErrorMessage="This telephone number is not recognized" ControlToValidate="txtPhone1" Text="*"> </asp:CustomValidator>
  • 17. Validación de entrada de datos de usuario 15 Controles de validación de entrada de datos „ RequiredFieldValidator z InitialValue „ CompareValidator z ValueToComparar o ControlToComparar z Type z Operator „ RangeValidator z MinimumValue z MaximumValue z Type Código de ejemplo ***************************** use****************************** Los controles de validación más sencillos son los controles RequiredFieldValidator, CompareValidator y RangeValidator. Todos ellos validan contra valores fijos o contra un segundo control de entrada de datos. Utilizamos el control RequiredFieldValidator para obligar a un usuario a introducir datos en un control de entrada de datos. Cualquier carácter es una respuesta válida con este control de validación. Únicamente la nula entrada de datos (en blanco), o espacios, constituye una entrada no válida con este control. El control RequiredFieldValidator se utiliza normalmente sólo en controles de entrada de datos necesarios para completar un proceso solicitado. Por ejemplo, un control RequiredFieldValidator se utilizaría para los campos nombre_usuario y contraseña en una página de inicio de sesión, pero no para información secundaria, como una oferta para convertirse en visitante favorito de un determinado sitio Web. Una opción para el control RequiredFieldValidator es tener un valor inicial que no sea una cadena vacía (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: Introducción Control RequiredFieldValidator
  • 18. 16 Validación 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> Únicamente el control RequiredFieldValidator requiere que se Nota introduzca un valor en un control. El resto de controles de validación aceptarán un control vacío o un espacio como respuesta válida. Utilizamos el control CompareValidator para probar la entrada de datos del usuario contra un valor específico o contra un segundo control de entrada de datos. El control CompareValidator a menudo se utiliza donde el riesgo de errores tipográficos es alto, como campos de contraseña que no muestran la entrada real de usuario. El control CompareValidator mostrará como válido un control de entrada de datos vacío. El control CompareValidator utiliza las siguientes propiedades: „ ValueToCompare La propiedad ValueToCompare se utiliza para establecer un valor constante con el que realizar la comparación. Utilizamos un carácter tubería (|) para separar varios valores. Esta propiedad se utiliza especialmente para validar contra valores inalterables, como un límite de edad mínima. 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 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 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 comparación a utilizar. Los operadores se especifican con el nombre de los operadores de comparación, como Equal, NotEqual, GreaterThan y GreaterThanEqual. Uso del control CompareValidator
  • 19. Validación 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> 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 mínimo y máximo se consideran válidos. El control RangeValidator se utiliza normalmente para verificar que el valor introducido (por ejemplo, edad, estatura, salario o número de hijos) coincide con un intervalo previsto. El control RangeValidator mostrará como válido un control de entrada de datos vacío. El control RangeValidator tiene las siguientes propiedades: „ MinimumValue La propiedad MinimumValue especifica el valor mínimo del intervalo válido para variables numéricas, o la longitud mínima de la 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 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 comparación. En el siguiente ejemplo, un control RangeValidator verifica que el control TextBox denominado txtAge tiene un valor entre 18 y 50: Uso del control RangeValidator
  • 20. 18 Validación de entrada de datos de usuario <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>
  • 21. Validación 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 Números de teléfono z Códigos postales z Direcciones electrónicas <asp:RegularExpressionValidator … <asp:RegularExpressionValidator … ControlToValidate="ControlToValidate="US_US_PhoneNumber"… PhoneNumber"… ValidationExpression="(((d{3}) ?)|(d{3}-))?d{3}-d{4} " …>*</asp:RegularExpressionValidator > d{3}) ?)|(d{3}-))?d{3}-d{4} " …>*</asp:RegularExpressionValidator > Código de ejemplo ***************************** use****************************** 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. 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 electrónicas y Web, números de teléfono y códigos postales. Para crear un nuevo modelo, seleccionar la plantilla Custom. El último modelo utilizado estará disponible para ser modificado. Esta característica del último utilizado ofrece una base a partir de la cual crear nuestro propio modelo. Introducción
  • 22. 20 Validación de entrada de datos de usuario Generamos nuestras propias expresiones habituales personalizadas utilizando el conjunto de caracteres de control que se muestran en la siguiente tabla. Carácter Definición a Debe utilizar la letra en minúscula. Las letras que no estén precedidas por una barra invertida (), o parte de un intervalo, son un requerimiento para ese valor literal. 1 Debe utilizar el número 1. Cualquier número 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 mínimo). [0-n] Intervalo de valores enteros de 0 a n. {n} La longitud debe ser n caracteres. | Separa múltiples modelos válidos. El siguiente carácter es un carácter comando. w Debe tener un carácter. d Debe tener un dígito. . Debe tener un periodo. Para más información sobre los caracteres de control, leer la “Introducción a las expresiones regulares,” en la documentación en línea de Referencia de JScript. El siguiente código de ejemplo muestra cómo podemos utilizar un control RegularExpressionValidator para comprobar si un usuario ha introducido una dirección electrónica válida: <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> Caracteres de expresiones habituales Nota Ejemplo de una expresión simple
  • 23. Validación de entrada de datos de usuario 21 Este control de validación RegularExpression comprueba un modelo específico, como muestra la siguiente tabla. Caracteres Definición w+ Una cadena de un carácter como mínimo. @ Un signo (@). w+ Una cadena de un carácter como mínimo. . Un periodo. w+ Una cadena de un carácter como mínimo. Una dirección electrónica válida para este control es: alguien@ejemplo.com. Una dirección electrónica no válida para este control es: alguien.com, o alguien@.com. La expresión predeterminada de correo electrónico de Visual Studio .NET es más compleja que el ejemplo anterior. El modelo predeterminado de correo electrónico también limita la separación de términos antes y después del signo (@) a xx.xx o xx-xx. La expresión regular predeterminada para direcciones electrónicas es: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* Este control de validación RegularExpression comprueba un modelo específico, como muestra la siguiente tabla. Caracteres Definición w+ Una cadena de un carácter como mínimo. ([-+.]w+)* Puede tener uno o más guiones o un punto, y una cadena de un carácter como mínimo. @ Un signo (@). w+ Una cadena de un carácter como mínimo. ([-.]w+)* Puede tener un guión o un punto, y una cadena de un carácter como mínimo. . Un punto. w+ Una cadena de un carácter como mínimo. ([-.]w+)* Puede tener un guión o un punto, y una cadena de un carácter como mínimo. Una dirección electrónica válida para este control es: algu-ien@ ejemplo.empresa.com. Una dirección electrónica no válida para este control es: algu,ien@ejemplo..empresa.com. Ejemplo de una expresión compleja
  • 24. 22 Validación de entrada de datos de usuario Demostración: uso de los controles de validación „ 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 demostración, veremos cómo 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 demostración 1. Crear un nuevo proyecto de aplicación Web denominado ValidationTst1. 2. Cambiar a FlowLayout. 3. Arrastrar los siguientes controles Web desde el Cuadro de herramientas a WebForm1: TextBox y Button. 4. Agregar un control RequiredFieldValidator junto al control de entrada de datos TextBox. 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 página. 8. Dejar el control en blanco y hacer clic en Button1. Se obtiene el mensaje de error Text, y no el mensaje ErrorMessage. Crear un formulario Web Form ASP.NET con controles TextBox y Button Agregar un control RequiredFieldValidator
  • 25. Validación de entrada de datos de 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 página. 12. Dejar el valor en blanco y hacer clic en Button. Se debería 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 debería 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 página está en modo de presentación estático, 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 página. 16. Introducir un valor mayor que 100 o menor que 16, y hacer clic en Button. Se debería 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 presentación dinámico). 17. Agregar un segundo control TextBox y un control RegularExpressionValidator junto a él. 18. Hacer clic con el botón 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 Dirección electrónica no válida. b. En la propiedad ControlToValidate, seleccionar TextBox2. c. En la propiedad ValidationExpression, seleccionar Internet E-mail Address. 19. Guardar, generar y examinar la página. Agregar un control RangeValidator Agregar un segundo control TextBox y un control Regular ExpressionValidator
  • 26. 24 Validación de entrada de datos de usuario Escribir una dirección electrónica incorrecta en el segundo cuadro de texto y hacer clic en Button. Se debería obtener el mensaje de texto Dirección electrónica no válida del control RegularExpressionValidator. 20. Seleccionar Ver fuente y mostrar la validación del lado del cliente HTML.
  • 27. Validación 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 z OnServerValidate „ Validar con: z Fórmula z Datos z Objetos COM z Servicio Web Código de ejemplo ***************************** use****************************** Utilizamos el control CustomValidator cuando deseamos utilizar nuestra propia lógica de validación personalizada para comprobar los datos introducidos por el usuario contra una variable, fórmula, o la entrada desde una segunda fuente. El control CustomValidator se utiliza a menudo para situaciones como la verificación de contraseñas, en las que los datos introducidos por el usuario se comparan con una contraseña almacenada en una base de datos de usuarios. El control CustomValidator valida en el lado del servidor, y puede validar en el lado del cliente si el navegador soporta la validación. A diferencia de otros controles de validación, donde ASP.NET crea los scripts de validación de cliente y servidor, debemos escribir explícitamente los scripts de validación para el control CustomValidator. Establecemos el control CustomValidator como válido o no válido 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 lógica con el código 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 código en el servidor, es importante comprobar que existe coherencia lógica con el script del lado del cliente. Introducción Validación del lado del cliente y del lado del servidor
  • 28. 26 Validación de entrada de datos de usuario El siguiente código de ejemplo muestra procedimientos del lado del servidor y del lado del cliente para un control CustomValidator y verificará que un número introducido en un control de entrada de datos es un número par: <asp: CustomValidator… ClientValidationFunction = "MyClientFunction" OnServerValidate = "MyServerFunction" /> „ Procedimiento del lado del cliente El siguiente código JScript está pensado para ejecutarse en Internet Explorer 6, y verificará que un número es par: <script language = "Jscript"> function MyClientFunction(source, arguments) { alert("Ejecución 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 código está diseñado para ejecutarse en un servidor .NET, y verificará que un número es par: 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 private void MyServerFunction(object objSource, ServerValidateEventArgs args) { int intValue = Convert.ToInt16(args.Value); if (intValue%2 == 0) { args.IsValid = true; } else { args.IsValid = false; } } Ejemplo Visual Basic .NET C#
  • 29. Validación de entrada de datos de usuario 27 Demostración: uso del control CustomValidator „ Agregar un control CustomValidator „ Escribir el código del lado del servidor „ Escribir el script en el lado del cliente „ Probar el resultado ***************************** use****************************** En esta demostración, veremos cómo utilizar un control CustomValidator. El código para esta demostración se encuentra en el proyecto Demo06VB o Demo06CS que se pueden encontrar dentro del fichero demos06.zip Ë Ejecutar esta demostración 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. 2. Agregar un control CustomValidator al formulario Web Form . 3. En la propiedad Text del control CustomValidator, escribir Es un número impar. 4. Establecer la propiedad ControlToValidate en TextBox1. 5. Hacer doble clic en CustomValidator para abrir el procedimiento de evento del lado del servidor y agregar el siguiente código: Dim intValue As Integer = args.Value If intValue mod 2 = 0 Then args.IsValid = True Else args.IsValid = False End If Introducción Agregar un control CustomValidator Escribir el código del lado del servidor Visual Basic .NET
  • 30. 28 Validación de entrada de datos de 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 automáticamente debería tener el nombre CustomValidator1_ServerValidate, y dos parámetros: source (tipo Object) y args (tipo ServerValidateEventArgs). 6. En la propiedad ClientValidationFunction del control CustomValidator, escribir MyClientValidation. 7. Abrir el código fuente HTML de la página CustomValidator.aspx (y no CustomValidator.aspx.vb). 8. Quitar el comentario del siguiente código que se encuentra justo después de la etiqueta <head>. Este ejemplo está en JScript: function MyClientValidation(source, arguments) { alert("Ejecución en el cliente"); var intValue = arguments.Value; if (intValue % 2 == 0) { arguments.IsValid = true; } else { arguments.IsValid = false; } } Verificar que el navegador de destino es Internet Explorer 5. En la vista de Diseño 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 código del lado del servidor para evitar el viaje de ida y vuelta al servidor con la página si esta propiedad está establecida a True y el navegador cliente es Internet Explorer 4 o posterior. C# Escribir el script del lado del cliente Probar el resultado
  • 31. Validación de entrada de datos de usuario 29 10. Generar y examinar CustomValidator.aspx. 11. Escribir un número en el cuadro de texto. 12. Se debería obtener el cuadro de mensaje Ejecución en el cliente al hacer clic en Button. Además, se debería obtener el mensaje Es un número impar cuando el número sea impar. 13. Establecer la propiedad EnableClientScript del control CustomValidator en False, de forma que únicamente se ejecute el código del lado del servidor. 14. Generar y examinar la página. 15. En este momento no se debería obtener el cuadro de mensaje, ya que se está ejecutando el código en el lado del servidor. Sin embargo, seguirá apareciendo el mensaje Es un número impar cuando el número sea impar.
  • 32. 30 Validación de entrada de datos de usuario Lección: validación de páginas „ Uso de la propiedad Page.IsValid „ Uso del control ValidationSummary „ Demostración: uso de la propiedad Page.IsValid y del control ValidationSummary ***************************** use****************************** En esta lección, estudiaremos cómo utilizar la propiedad Page.IsValid y el control ValidationSummary para verificar que todos los controles de validación de un formulario ASP.NET Web Form son válidos antes de que se inicie el proceso. En esta lección, aprenderemos a: „ Utilizar la propiedad Page.IsValid para determinar si todos los controles de validación de entrada de datos de una página son válidos. „ Utilizar el control ValidationSummary para mostrar un resumen de mensajes de error en una página. Introducción Objetivos de la lección
  • 33. Validación de entrada de datos de usuario 31 Uso de la propiedad Page.IsValid Examina todos los controles de validación Sub cmdSubmit_Click(s As Object, e As EventArgs) Sub cmdSubmit_Click(s As Object, e As EventArgs) If Page.IsValid Then If Page.IsValid Then Message.Text = "Page is valid!" ' Perform database updates or other logic here End If End Sub Message.Text = "Page is valid!" ' Perform database updates or other logic here End If End Sub private void cmdSubmit_Click(object s, System.EventArgs e) { if (Page.IsValid) private void cmdSubmit_Click(object s, System.EventArgs e) { if (Page.IsValid) { Message.Text = "Page is Valid!"; // Perform database updates or other logic here } } { Message.Text = "Page is Valid!"; // Perform database updates or other logic here } } ***************************** use****************************** .NET permite verificar que todos los controles de una página son válidos antes de que realicen alguna acción. Esta verificación puede llevarse a cabo en el cliente o en el servidor, dependiendo del navegador que se esté utilizando. La verificación del lado del cliente se realiza con el control ValidationSummary, mientras que la verificación del lado del servidor se realiza con la propiedad Page.IsValid. Para determinar si todos los controles de validación de una página son válidos, comprobamos la propiedad IsValid de la página en tiempo de ejecución. La propiedad IsValid se vincula a los valores de todos los controles de validación que se encuentran en la página (utilizando un AND lógico). Si algún control de validación no es válido, 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 válidos y si el formulario Web Form está preparado para seguir con la lógica de negocio. Los controles de validación verifican las entradas del usuario, establecen un estado de error y producen mensajes de error. Sin embargo, los controles de validación no cambian el flujo de procesamiento de páginas. Por ejemplo, los controles de validación no evitan nuestro código si detectan un error en los datos introducidos por el usuario. En lugar de ello, probamos el estado de los controles en nuestro código antes de realizar lógica específica de aplicación. Si detectamos un error, evitamos que nuestro código se ejecute; la página seguirá procesándose y se devuelve al usuario con mensajes de error. La información de validación no está disponible durante la inicialización de una página o durante la fase de carga. Para obtener información sobre los estados de página, examinar “Estados de procesamiento de páginas de formularios Web Forms” en la documentación de Visual Studio .NET. Introducción Uso de la propiedad Page.IsValid Nota
  • 34. 32 Validación de entrada de datos de usuario El siguiente ejemplo muestra el controlador de eventos de un botón. El código verifica la propiedad IsValid de toda la página. No es necesario para una cláusula Else, ya que la página será enviada de vuelta automáticamente al navegador y los controles de validación mostrarán sus propios mensajes de error: 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 private void cmdSubmit_Click(object s, System.EventArgs e) { if (Page.IsValid) { Message.Text = "Page is Valid!"; // Perform database updates or other logic here } } Ejemplo Visual Basic .NET C#
  • 35. Validación de entrada de datos de usuario 33 Uso del control ValidationSummary „ Recopila los mensajes de error de todos los controles de validación de la página „ Puede mostrar mensajes de texto y de error „ Utilizar Text="*" para indicar la ubicación del error <asp:ValidationSummary id="valSummary" runat="server" HeaderText="These errors were found:" ShowSummary="True" DisplayMode="List"/> <asp:ValidationSummary id="valSummary" runat="server" HeaderText="These errors were found:" ShowSummary="True" DisplayMode="List"/> ***************************** use****************************** El control ValidationSummary muestra cuando la propiedad Page.IsValid devuelve False. Se contacta con cada control de validación de la página y el control ValidationSummary reúne los mensajes de ErrorMessage. 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 viñetas o un único párrafo. Los controles ValidationSummary se ubican normalmente cerca del botón Submit de forma que todos los mensajes de error sean fácilmente visibles para el usuario cuando se disparen los controles de validación de entrada de datos. El siguiente código HTML muestra un control ValidationSummary típico: <asp:ValidationSummary id="valSummary" runat="server" HeaderText="These errors were found:" ShowSummary="True" DisplayMode="List" /> Cuando se utiliza el control ValidationSummary, la propiedad Text (si se utiliza) se muestra en la ubicación del control de validación, mientras que la propiedad ErrorMessage se muestra en la presentación 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 descripción del error de entrada de datos, que normalmente se ubica cerca del evento que dispara el control. Introducción Muestra mensajes de texto y de error Uso de * para localizar errores
  • 36. 34 Validación de entrada de datos de usuario La siguiente ilustración muestra un par de campos de contraseña con varios controles de validación de entrada de datos y un control ValidationSummary. Ejemplo
  • 37. Validación de entrada de datos de usuario 35 Demostración: uso de la propiedad Page.IsValid y del control ValidationSummary „ Abrir una página ASP.NET con múltiples cuadros de texto y controles de validación „ Agregar un control ValidationSummary „ Agregar un script que utilice la propiedad Page.IsValid ***************************** use****************************** En esta demostración, veremos cómo utilizar el método Page.IsValid y el control Validation Summary. Los campos de esta demostración se encuentran en el proyecto Demo06VB o Demo06CS que se pueden encontrar dentro del fichero demos06.zip Ë Ejecutar esta demostración 1. Abrir el formulario Web Form denominado ValidationSummary.aspx en Visual Studio .NET. La página ya contiene dos controles TextBox. Hay un control RequiredFieldValidator y un control RangeValidator, que validan el primer cuadro de texto. La página también contiene un control RequiredFieldValidator y un control RegularExpressionValidator, que validan el segundo cuadro de texto. Además, hay un botón Submit y un Label. 2. Arrastrar el control ValidationSummary a la parte inferior de la página. 3. Hacer doble clic en el control Button para abrir el controlador de eventos Click, y eliminar el comentario del siguiente código: If Page.IsValid Then lblMessage.Text = "Page is valid!" End If Introducción Abrir una página ASP.NET Agregar un control Validation Summary Agregar código para probar la validez de la página Visual Basic .NET C#
  • 38. 36 Validación de entrada de datos de usuario if (Page.IsValid) { lblMessage.Text = "Page is valid!"; } 4. Guardar, generar y examinar la página ValidationSummary.aspx. Deberíamos ver el mensaje Page is valid! cuando toda la página sea válida.