38
Í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 Validación de entrada de datos de usuario

Validando las entradas de usuario

Embed Size (px)

DESCRIPTION

Validando las entradas de usuario

Citation preview

Page 1: Validando las entradas 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

Validación de entrada de datos de usuario

Page 2: Validando las entradas de usuario
Page 3: 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

Page 4: Validando las entradas de usuario

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

Page 5: Validando las entradas de usuario

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 spoofingo añadircó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

Page 6: Validando las entradas de usuario

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

Page 7: Validando las entradas de usuario

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 servidorValidación del lado del cliente

Dependiente de la versión del navegadorRespuesta inmediataReduce los ciclos de postback

Validación del lado del servidorRepite toda la validación del lado del clientePuede validar contra datos almacenados

¿Válido?

¿Válido?

El usuariointroduce datos

No

No

Mensaje de error

ClienteServidor

Aplicación Webprocesada

***************************** 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

Page 8: Validando las entradas de usuario

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

Page 9: Validando las entradas de usuario

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 puedeverificar 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

Page 10: Validando las entradas de usuario

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

Page 11: Validando las entradas de usuario

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

<asp:Type_of_Validatorid="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_Validatorid="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:TextBox id="txtName" runat="server" /><asp:TextBox id="txtName" runat="server" />

111

222

333

***************************** 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

Page 12: Validando las entradas de usuario

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.

Page 13: Validando las entradas de usuario

Validación de entrada de datos de usuario 11

Posicionar controles de validación en un formulario Web Form

Crear mensajes de errorSeleccionar modo de presentación

Estático

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

Page 14: Validando las entradas de usuario

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

Page 15: Validando las entradas de usuario

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

Page 16: Validando las entradas de usuario

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>

Page 17: Validando las entradas de usuario

Validación de entrada de datos de usuario 15

Controles de validación de entrada de datos

RequiredFieldValidatorInitialValue

CompareValidatorValueToComparar o ControlToCompararTypeOperator

RangeValidatorMinimumValueMaximumValueType

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

Page 18: Validando las entradas de usuario

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 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.

Nota

Uso del control CompareValidator

Page 19: Validando las entradas de usuario

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

Page 20: Validando las entradas de usuario

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>

Page 21: Validando las entradas de usuario

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:

Números de teléfono

Códigos postales

Direcciones electrónicas<asp:RegularExpressionValidator …

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

<asp:RegularExpressionValidator …ControlToValidate="US_PhoneNumber"…ValidationExpression="((\(\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

Page 22: Validando las entradas de usuario

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 [email protected]" ValidationExpression="\w+@\w+\.\w+" Text="*"> </asp:RegularExpressionValidator>

Caracteres de expresiones habituales

Nota

Ejemplo de una expresión simple

Page 23: Validando las entradas de usuario

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: [email protected].

Una dirección electrónica no válida para este control es: alguien.com, o [email protected].

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: [email protected].

Una dirección electrónica no válida para este control es: algu,[email protected].

Ejemplo de una expresión compleja

Page 24: Validando las entradas de usuario

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

Page 25: Validando las entradas de usuario

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

Page 26: Validando las entradas de usuario

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.

Page 27: Validando las entradas de usuario

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

ClientValidationFunctionOnServerValidate

Validar con: FórmulaDatosObjetos COMServicio 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

Page 28: Validando las entradas de usuario

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#

Page 29: Validando las entradas de usuario

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

Page 30: Validando las entradas de usuario

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

Page 31: Validando las entradas de usuario

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.

Page 32: Validando las entradas de usuario

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

Page 33: Validando las entradas de usuario

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)If Page.IsValid Then

Message.Text = "Page is valid!"' Perform database updates or other logic here

End IfEnd Sub

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 IfEnd 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

}

}

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

{ if (Page.IsValid)

{ 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

Page 34: Validando las entradas de usuario

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#

Page 35: Validando las entradas de usuario

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

Page 36: Validando las entradas de usuario

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

Page 37: Validando las entradas de usuario

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#

Page 38: Validando las entradas de usuario

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.