Está en la página 1de 38

Validacin de entrada de datos de usuario

ndice Descripcin Leccin: Descripcin de la validacin de entrada de datos del usuario Leccin: validacin de pginas 1 2 30

Leccin: uso de los controles de validacin 8

Validacin de entrada de datos de

usuario

Descripcin
Descripcin de la validacin de entrada de datos de usuario Uso de controles de validacin Validacin de pginas

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

Introduccin

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

Objetivos

En este mdulo, aprenderemos a: Identificar cundo es apropiada la validacin de entrada de datos en los formularios Web Forms. Utilizar controles de validacin de entrada de datos para verificar los datos introducidos por el usuario en un formulario Web Form. Verificar que todos los controles de validacin de una pgina son vlidos.

Validacin de entrada de datos de

usuario

Leccin: validacin de entrada de datos del usuario


Qu es es la validacin de entrada de datos? Validacin del lado del cliente y del lado del servidor Controles de validacin ASP.NET

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

Introduccin

En esta leccin, estudiaremos cmo la validacin de entrada de datos verifica que el usuario ha cumplimentado correctamente los controles de entrada de datos en un formulario Web Form, antes de que una peticin sea procesada en el servidor. Tambin estudiaremos los tipos de controles de validacin de entrada de datos disponibles en ASP.NET. En esta leccin, aprenderemos a: Explicar el concepto de validacin. Explicar la diferencia entre validacin del lado del cliente y validacin del lado del servidor. Combinar los tipos apropiados de controles de validacin ASP.NET para determinados requerimientos de entrada.

Objetivos de la leccin

Validacin de entrada de datos de

usuario

Qu es la validacin de entrada de datos?


Verifica que el usuario ha introducido correctamente el valor de un control Bloquea el procesamiento de una pgina hasta que todos los controles son vlidos Evita el spoofing o aadir cdigo mal intencionado

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

Introduccin

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

Verificar valores de control

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

Validacin de entrada de datos de

usuario

Por ejemplo, un control de entrada de datos que solicita al usuario que introduzca su nmero de telfono podra tener un control de validacin de entrada de datos adjunto que verificara que el usuario nicamente introduce nmeros en un formato basado en el nmero de telfono. Introducir letras o muy pocos nmeros activara el control de validacin de entrada de datos para validar la entrada de datos. Procesamiento de bloque de errores La entrada de usuario que concuerda con el formato predeterminado es procesada por el formulario Web Form. La entrada de usuario que no concuerda con el formato predeterminado provoca un mensaje de error que detiene el procesamiento por parte del formulario Web hasta que la entrada de usuario se corrige para cumplir con el formato previsto y la pgina haya sido reenviada para su procesamiento. Los controles de validacin protegen los formularios Web Forms de dos importantes peligros: spoofing y cdigo mal intencionado. Ejecutando todos los controles de validacin en el lado del servidor, con independencia de la validacin del lado del cliente, ASP.NET protege de las siguientes amenazas: Spoofing Spoofing es cuando un usuario modifica la pgina HTML (Hypertext Markup Language) que se le ha enviado, y devuelve valores que hacen que parezca que ha introducido datos vlidos o pasado una comprobacin de autorizacin. La validacin nicamente es susceptible de spoofing en el lado del cliente, porque el usuario puede deshabilitar scripts del lado del cliente cambiando las opciones del navegador y no ejecutar el cdigo de validacin del lado del cliente, lo que crea un falso nivel de autorizacin. Con ASP.NET, la validacin de entrada de datos del lado del cliente siempre se repite en el lado del servidor, donde los usuarios no pueden modificar o deshabilitar el control de validacin. Cdigo mal intencionado Cuando un usuario puede agregar texto ilimitado a una pgina Web mediante controles de entrada de datos de usuario que no dispongan de validacin de entrada de datos, puede introducir cdigo mal intencionado. Cuando el usuario enva la siguiente solicitud al servidor, este cdigo aadido podra ser muy perjudicial para el servidor Web y las aplicaciones conectadas. Por ejemplo, si decidimos no validar un campo UserName porque tenemos clientes internacionales y no podemos pensar en un formato de nombres universal para la validacin, un usuario mal intencionado podra explotar esta falta de validacin para provocar varios problemas, incluyendo: Generar un error de tipo buffer overrun y una cada del servidor introduciendo un nombre con varios miles de caracteres. Crear y autenticar una nueva cuenta de usuario. Agregar privilegios a su propia cuenta, y eliminar privilegios de otras cuentas. Enviar una consulta SQL a nuestra base de datos de clientes y descargar todos los datos presentes, incluyendo nombres de usuario, direcciones, contraseas y nmeros de tarjetas de crdito.

Spoofing y cdigo mal intencionado

Validacin de entrada de datos de

usuario

Validacin del lado del cliente y del lado del servidor


ASP.NET puede generar validacin del lado del cliente y del lado del servidor Validacin del lado del cliente
Dependiente de la versin del navegador Respuesta inmediata Reduce los ciclos de postback Vlido? El usuario introduce datos

Mensaje de error No

Cliente Servidor

S
Vlido?

Validacin del lado del servidor


Repite toda la validacin del lado del cliente Puede validar contra datos almacenados

No

S
Aplicacin Web procesada

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

Introduccin

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

Validacin del lado del cliente

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

Validacin de entrada de datos de

usuario

cliente sea correcta. En Internet Explorer 5 o posterior, el uso de la tecla TABULADOR para moverse de un control de entrada de datos al siguiente ejecuta la validacin del lado del cliente para el control de entrada de datos completo. Esta validacin utilizando el TABULADOR ofrece al usuario informacin inmediata sobre los datos que ha introducido. Validacin del lado del servidor Todos los controles de validacin de entrada de datos se ejecutan en el lado del servidor. Las validaciones del lado del cliente se repiten en el lado del servidor cuando la pgina se enva de nuevo al servidor. Esta repeticin evita el spoofing de usuarios que no ejecutan el script del lado del cliente e intentan introducir datos no vlidos. Los controles de validacin del lado del servidor pueden escribirse en cualquier lenguaje basado en .NET, y se compilan en MSIL antes de ser ejecutados en el servidor. Adems de validar el formato de los datos introducidos, los controles de validacin del lado del servidor pueden utilizarse para comparar la entrada de datos del usuario con datos almacenados. Esta funcionalidad permite validacin contra diversos elementos, como contraseas previamente almacenadas o restricciones geogrficas, incluyendo las leyes y los impuestos locales.

Validacin de entrada de datos de

usuario

Controles de validacin ASP.NET


ASP.NET proporciona controles de validacin para: Comparar valores Comparar con una frmula personalizada Comparar con un intervalo Comparar con un modelo de expresin habitual Requerir entrada de datos por parte del usuario Resumir los controles de validacin de una pgina

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

Controles de validacin

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


Control de validacin CompareValidator Funcin Compara un control de entrada de datos con otro, un valor fijo, un tipo de datos o un archivo. Por ejemplo, este control puede utilizarse para campos de verificacin de contraseas. Nos permite escribir nuestro propio cdigo para crear la expresin de validacin. Por ejemplo, este control puede utilizarse para verificar que el valor es un nmero primo. 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. Verifica que la entrada coincide con un modelo definido por una expresin habitual. Este control de validacin permite comprobar secuencias predecibles de caracteres, como nmeros de la seguridad social, direcciones electrnicas, nmeros de telfono y cdigos postales. Visual Studio .NET proporciona modelos predefinidos para expresiones habituales como nmeros de telfono. Comprueba si se ha introducido un valor en un control. Es el nico control de validacin que requiere un valor. El resto de controles de validacin de entrada de datos aceptarn un control vaco como respuesta vlida. Muestra un resumen de todos los errores de validacin para todos los controles de validacin de la pgina. Este control se ubica normalmente cerca del botn Submit para proporcionar respuesta inmediata sobre el estado de entrada de datos de la pgina.

CustomValidator

RangeValidator

RegularExpression Validator

RequiredFieldValidator

ValidationSummary

Validacin de entrada de datos de

usuario

Leccin: uso de los controles de validacin


Agregar controles de validacin a un formulario Web Form Posicionar controles de validacin en un formulario Web Form Combinar controles de validacin Controles de validacin para la entrada de datos Uso del control RegularExpressionValidator Demostracin: uso de controles de validacin Uso del control CustomValidator Demostracin: uso del control CustomValidator
***************************** use******************************

Introduccin

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

Objetivos de la leccin

En esta leccin, aprenderemos a: Agregar un control de validacin a un formulario Web Form y asociarlo a un control de entrada de datos. Posicionar los controles de validacin en una pgina Web para soportar el uso correcto del control de entrada de datos asociado. Utilizar los controles de validacin RequiredInputValidator, CompareValidator y RangeValidator para validar datos introducidos por el usuario. Utilizar el control RegularExpressionValidator para validar datos introducidos por el usuario. Utilizar el control CustomValidator para validar datos introducidos por el usuario. Asociar mltiples controles de validacin a un nico control de entrada de datos.

Validacin de entrada de datos de

usuario

Agregar controles de validacin a un formulario Web Form


1 1. Agregar un control de validacin 1 2 2. Seleccionar el control de entrada de datos para validar 2 3 3. Establecer propiedades de validacin 3

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

Introduccin

Como todos los controles de validacin de entrada de datos comparten un modelo de objetos comn, el proceso de agregar controles de validacin a una pgina es el mismo para todos los controles. En Visual Studio .NET, simplemente arrastramos el control de validacin de entrada a una pgina, seleccionamos el control de entrada a validar y establecemos las propiedades. Para agregar un control de validacin, abrimos el cuadro de herramientas del formulario Web Form, seleccionamos uno de los controles de validacin disponibles y lo arrastramos junto al control de entrada de datos que deseamos validar. Seleccionamos el control de entrada de datos para validar abriendo la ventana Propiedades y seleccionando el ID de control de entrada de datos apropiado en la lista desplegable que se encuentra junto a la propiedad ControlToValidate. Podemos adjuntar mltiples controles de validacin a un nico control de entrada de datos. Todos los controles de validacin adjuntos deben estar en True antes de que ese control de entrada de datos sea aceptado y el formulario Web Form ASP.NET pueda ser procesado. Una vez el control de validacin de entrada de datos est ubicado en la pgina, utilizamos la ventana Propiedades para introducir las propiedades especficas del control, como la expresin de validacin, el mensaje de error y mensaje de texto. La sintaxis compartida para los controles de validacin de entrada de datos es la siguiente:
<asp:type_of_validator id="validator_id" runat="server" ControlToValidate="control_id" ErrorMessage="error_message_for_error_summary" Display="static|dynamic|none" Text="Text_to_display_by_input_control"> </asp:type_of_validator>

Agregar un control de validacin

Seleccionar el control de entrada de datos para validar

Establecer las propiedades de validacin

10

Validacin de entrada de datos de

usuario

Cada control de validacin tiene propiedades nicas adicionales que definen el modo de funcionamiento. Dos de las propiedades que comparten todos los controles de validacin, a excepcin del control ValidationSummary, son Type y EnableClientScript: Type La propiedad Type es el tipo de datos que se validar. Visual Studio .NET ajustar automticamente el tipo de datos para que coincida con el control de entrada de datos adjunto al seleccionar ControlToValidate. Entre los tipos de datos disponibles se incluyen String, Integer, Double, Date y Currency. EnableClientScript La propiedad EnableClientScript indica si realizamos o no la validacin del lado del cliente. El valor predeterminado de esta propiedad es true. ASP.NET crea procedimientos de validacin en el lado del cliente en Microsoft JScript .NET, y crea procedimientos de validacin del lado del servidor en C# y Microsoft Visual Basic .NET. Esta diferencia de lenguaje puede provocar pequeas diferencias entre las implementaciones de controles de validacin en el lado del cliente y en el lado del servidor.

Validacin de entrada de datos de

usuario

11

Posicionar controles de validacin en un formulario Web Form


Crear mensajes de error Seleccionar modo de presentacin Esttico

Dinmico

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

Introduccin

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

Mensajes de error

Los controles de validacin de entrada de datos ASP.NET contienen dos propiedades de mensajes de error: una propiedad ErrorMessage y una propiedad Text, pudindose mostrar ambas en la ubicacin del control de validacin de entrada de datos. La diferencia entre ambas propiedades de mensajes de error es la siguiente: Propiedad ErrorMessage La propiedad ErrorMessage es el mensaje de error que se muestra en la ubicacin de un control de validacin cuando ste se dispara, si no est establecida la propiedad Text. Este mensaje tambin se incluir en un control ValidationSummary si se utiliza uno en el formulario Web Form.

12

Validacin de entrada de datos de

usuario

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

En este mdulo, observarmos la propiedad Text declarada explcitamente, como muestra el siguiente cdigo:
<asp:type_of_validatorText="Text"> </asp:type_of_validator>

Establecer la propiedad Display

La propiedad Display establece el espacio de mensajes de error desde mltiples controles de validacin cuando se muestra el formulario Web Form en FlowLayout. La propiedad Display nicamente afecta a mensajes de error en la ubicacin del control de validacin. Los mensajes que se muestran en ValidationSummary no se ven afectados por la propiedad Display. La siguiente tabla describe las diversas opciones de la propiedad Display.
Opciones Static Descripcin Define una presentacin prefijada para el mensaje de error, con cada control de validacin ocupando un espacio, aunque no haya texto de mensaje de error visible. Esta opcin permite definir una presentacin fija para la pgina, como se muestra en la ilustracin anterior. De forma predeterminada, Visual Studio .NET utiliza Display="static" para posicionar el texto del mensaje de error. Dynamic Permite que los controles de validacin se representen en la pgina como parte del flujo de texto. El uso de esta opcin evita que se muestren espacios en blanco en la pgina cuando no se invocan los controles de validacin de entrada de datos, como se muestra en la ilustracin anterior. En ocasiones, esta opcin hace que los controles tengan movimiento en el formulario Web Form cuando se muestran mensajes de error. Bloquea la visualizacin de mensajes de error en la ubicacin del control de validacin.

None

Validacin de entrada de datos de

usuario

13

Combinar controles de validacin


Pueden existir mltiples controles de validacin en un nico control de entrada de datos nicamente RequiredFieldValidator comprueba los controles vacos

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

Introduccin

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

Mltiples controles de validacin en un nico control de entrada Ejemplo

Podemos asociar mltiples controles de validacin a un nico control de entrada de datos. Esta asociacin muchos-a-uno de los controles de validacin permite la introduccin de datos del usuario para ms de un requerimiento de validacin. El siguiente cdigo de ejemplo muestra un nico control de entrada de datos para un nmero de telfono. El contenido del control de entrada de datos se comprueba utilizando un control RequiredFieldValidator, y el formato correcto se comprueba utilizando un control RegularExpressionValidator: Control de entrada de datos El siguiente cdigo define el control TextBox que se est validando:
<asp:TextBox id="txtPhone1" runat="server" > </asp:TextBox>

14

Validacin de entrada de datos de

usuario

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

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

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

Validacin de entrada de datos de

usuario

15

Controles de validacin de entrada de datos


RequiredFieldValidator InitialValue CompareValidator ValueToComparar o ControlToComparar Type Operator RangeValidator MinimumValue MaximumValue Type Cdigo de ejemplo
***************************** use******************************

Introduccin

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

Control RequiredFieldValidator

16

Validacin de entrada de datos de


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

usuario

Nota nicamente el control RequiredFieldValidator requiere que se introduzca un valor en un control. El resto de controles de validacin aceptarn un control vaco o un espacio como respuesta vlida. Uso del control CompareValidator Utilizamos el control CompareValidator para probar la entrada de datos del usuario contra un valor especfico o contra un segundo control de entrada de datos. El control CompareValidator a menudo se utiliza donde el riesgo de errores tipogrficos es alto, como campos de contrasea que no muestran la entrada real de usuario. El control CompareValidator mostrar como vlido un control de entrada de datos vaco. El control CompareValidator utiliza las siguientes propiedades: ValueToCompare La propiedad ValueToCompare se utiliza para establecer un valor constante con el que realizar la comparacin. Utilizamos un carcter tubera (|) para separar varios valores. Esta propiedad se utiliza especialmente para validar contra valores inalterables, como un lmite de edad mnima. Utilizamos el control CustomValidator para comparar contra valores que pueden cambiar. ControlToCompare La propiedad ControlToCompare se utiliza para identificar otro control con el que realizar la comparacin. Esta propiedad puede utilizarse para buscar errores tipogrficos haciendo que el usuario introduzca los mismos datos en dos campos adyacentes. Si establecemos ambas propiedades, ValueToCompare y ControlToCompare, la propiedad ControlToCompare tiene prioridad. Type La propiedad Type se utiliza para especificar el tipo de datos. Utilizamos esta propiedad cuando deseamos comparar el valor de un control de entrada de datos contra un DataType. Operator La propiedad Operator especifica el operador de comparacin a utilizar. Los operadores se especifican con el nombre de los operadores de comparacin, como Equal, NotEqual, GreaterThan y GreaterThanEqual.

Validacin de entrada de datos de

usuario

17

En el siguiente ejemplo, un control CompareValidator verifica que los valores de los controles TextBox, txtPassword1 y txtPassword2, coinciden:
<asp:TextBox id="txtPassword1" runat="server"> Enter your password </asp:TextBox> <asp:TextBox id="txtPassword2" runat="server" > Enter your password again </asp:TextBox> <asp:CompareValidator id="CompareValidator1" runat="server" ErrorMessage="These fields do not match" ControlToCompare="txtPassword1" ControlToValidate="txtPassword2" Text="*"> </asp:CompareValidator>

Uso del control RangeValidator

El control RangeValidator se utiliza para comprobar si el valor introducido est dentro de un determinado intervalo. El intervalo de medida es inclusivo y los valores mnimo y mximo se consideran vlidos. El control RangeValidator se utiliza normalmente para verificar que el valor introducido (por ejemplo, edad, estatura, salario o nmero de hijos) coincide con un intervalo previsto. El control RangeValidator mostrar como vlido un control de entrada de datos vaco. El control RangeValidator tiene las siguientes propiedades: MinimumValue La propiedad MinimumValue especifica el valor mnimo del intervalo vlido para variables numricas, o la longitud mnima de la cadena de caracteres para variables de cadena. MaximumValue La propiedad MaximumValue especifica el valor mximo del intervalo vlido para variables numricas, o la longitud mxima de la de caracteres cadena para variables de cadena. Type La propiedad Type se utiliza para especificar el tipo de datos de los valores a comparar. Los valores a comparar se convierten en este tipo de datos antes de que se realice alguna comparacin. En el siguiente ejemplo, un control RangeValidator verifica que el control TextBox denominado txtAge tiene un valor entre 18 y 50:

18

Validacin de entrada de datos de


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

usuario

Validacin de entrada de datos de

usuario

19

Uso del control RegularExpressionValidator


Se utiliza cuando la entrada debe ajustarse a un modelo predefinido Visual Studio .NET incluye modelos para: Nmeros de telfono Cdigos postales Direcciones electrnicas
<asp:RegularExpressionValidator <asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber" ControlToValidate="US_PhoneNumber" ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4} " ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4} " >*</asp:RegularExpressionValidator > >*</asp:RegularExpressionValidator >

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

Introduccin

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

20

Validacin de entrada de datos de

usuario

Caracteres de expresiones habituales

Generamos nuestras propias expresiones habituales personalizadas utilizando el conjunto de caracteres de control que se muestran en la siguiente tabla.
Carcter a Definicin Debe utilizar la letra en minscula. Las letras que no estn precedidas por una barra invertida (\), o parte de un intervalo, son un requerimiento para ese valor literal. Debe utilizar el nmero 1. Cualquier nmero que no est precedido de una barra invertida (\),o parte de un intervalo, es un requerimiento para ese valor literal. Elemento 0 1. Elementos 0 a N. Elementos 1 a N (1 como mnimo). Intervalo de valores enteros de 0 a n. La longitud debe ser n caracteres. Separa mltiples modelos vlidos. El siguiente carcter es un carcter comando. Debe tener un carcter. Debe tener un dgito. Debe tener un periodo.

? * + [0-n] {n} | \ \w \d \.

Nota Para ms informacin sobre los caracteres de control, leer la Introduccin a las expresiones regulares, en la documentacin en lnea de Referencia de JScript. Ejemplo de una expresin simple El siguiente cdigo de ejemplo muestra cmo podemos utilizar un control RegularExpressionValidator para comprobar si un usuario ha introducido una direccin electrnica vlida:
<asp:TextBox id="txtEmail" runat="server" /> <asp:RegularExpressionValidator id="txtEmail_validation" runat="server" ControlToValidate="txtEmail" ErrorMessage="Use the format username@organization.xxx" ValidationExpression="\w+@\w+\.\w+" Text="*"> </asp:RegularExpressionValidator>

Validacin de entrada de datos de

usuario

21

Este control de validacin RegularExpression comprueba un modelo especfico, como muestra la siguiente tabla.
Caracteres \w+ @ \w+ \. \w+ Definicin Una cadena de un carcter como mnimo. Un signo (@). Una cadena de un carcter como mnimo. Un periodo. Una cadena de un carcter como mnimo.

Una direccin electrnica vlida para este control es: alguien@ejemplo.com. Una direccin electrnica no vlida para este control es: alguien.com, o alguien@.com. Ejemplo de una expresin compleja La expresin predeterminada de correo electrnico de Visual Studio .NET es ms compleja que el ejemplo anterior. El modelo predeterminado de correo electrnico tambin limita la separacin de trminos antes y despus del signo (@) a xx.xx o xx-xx. La expresin regular predeterminada para direcciones electrnicas es:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Este control de validacin RegularExpression comprueba un modelo especfico, como muestra la siguiente tabla.
Caracteres \w+ ([-+.]\w+)* @ \w+ ([-.]\w+)* \. \w+ ([-.]\w+)* Definicin Una cadena de un carcter como mnimo. Puede tener uno o ms guiones o un punto, y una cadena de un carcter como mnimo. Un signo (@). Una cadena de un carcter como mnimo. Puede tener un guin o un punto, y una cadena de un carcter como mnimo. Un punto. Una cadena de un carcter como mnimo. Puede tener un guin o un punto, y una cadena de un carcter como mnimo.

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

22

Validacin de entrada de datos de

usuario

Demostracin: uso de los controles de validacin


Crear un formulario Web Form ASP.NET con controles TextBox y Button Agregar un control RequiredFieldValidator Agregar un control RangeValidator Agregar un control RegularExpressionValidator

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

En esta demostracin, veremos cmo puede utilizarse un control RequiredFieldValidator para verificar que un control TextBox se ha rellenado antes de que un formulario Web Form sea procesado. Ejecutar esta demostracin Crear un formulario Web Form ASP.NET con controles TextBox y Button Agregar un control RequiredFieldValidator 1. Crear un nuevo proyecto de aplicacin 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 ControlToValidate ErrorMessage Text Valor TextBox1 Texto del mensaje de error Se requiere entrada de datos

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

Validacin de entrada de datos de

usuario

23

Agregar un control RangeValidator

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 ControlToValidate ErrorMessage Text MaximumValue MinimumValue Type Valor TextBox1 Texto del mensaje de error Fuera del intervalo 100 16 Entero

11. Guardar, generar y examinar la pgina. 12. Dejar el valor en blanco y hacer clic en Button. Se debera obtener el mensaje Se requiere entrada de datos del control RequiredFieldValidator. 13. Escribir un valor mayor que 100 o menor que 16, y hacer clic en Button. Se debera obtener el mensaje Fuera del intervalo del control RangeValidator. El mensaje de texto Fuera del intervalo no est directamente junto al control de entrada de datos. Debido a que la pgina est en modo de presentacin esttico, el control RequiredFieldValidator guarda un espacio para su mensaje de texto. 14. Volver a abrir el formulario Web Form, seleccionar el control RequiredFieldValidator y cambiar la propiedad Display a Dynamic. 15. Guardar, generar y examinar la pgina. 16. Introducir un valor mayor que 100 o menor que 16, y hacer clic en Button. Se debera obtener el mensaje Fuera del intervalo del control RangeValidator. Esta vez, el mensaje de texto Fuera del intervalo est directamente junto al control de entrada de datos debido a que RequiredFieldValidator no guarda el espacio para su mensaje de texto (modo de presentacin dinmico). Agregar un segundo control TextBox y un control Regular ExpressionValidator 17. Agregar un segundo control TextBox y un control RegularExpressionValidator junto a l. 18. Hacer clic con el botn derecho en el control RegularExpressionValidator y clic en Propiedades, o clic en el control RegularExpressionValidator si la ventana Propiedades sigue abierta, e introducir las siguientes propiedades: a. En la propiedad ErrorMessage, escribir Direccin electrnica no vlida. b. En la propiedad ControlToValidate, seleccionar TextBox2. c. En la propiedad ValidationExpression, seleccionar Internet E-mail Address. 19. Guardar, generar y examinar la pgina.

24

Validacin de entrada de datos de

usuario

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

Validacin de entrada de datos de

usuario

25

Uso del control CustomValidator


Es posible validar en lado del cliente, en el lado del servidor, o en ambos ClientValidationFunction OnServerValidate Validar con: Frmula Datos Objetos COM Servicio Web Cdigo de ejemplo
***************************** use******************************

Introduccin

Utilizamos el control CustomValidator cuando deseamos utilizar nuestra propia lgica de validacin personalizada para comprobar los datos introducidos por el usuario contra una variable, frmula, o la entrada desde una segunda fuente. El control CustomValidator se utiliza a menudo para situaciones como la verificacin de contraseas, en las que los datos introducidos por el usuario se comparan con una contrasea almacenada en una base de datos de usuarios. El control CustomValidator valida en el lado del servidor, y puede validar en el lado del cliente si el navegador soporta la validacin. A diferencia de otros controles de validacin, donde ASP.NET crea los scripts de validacin de cliente y servidor, debemos escribir explcitamente los scripts de validacin para el control CustomValidator. Establecemos el control CustomValidator como vlido o no vlido utilizando la propiedad args.IsValid. Las propiedades del control CustomValidator incluyen: ClientValidationFunction La propiedad ClientValidationFunction es el script que deseamos que ejecute el control CustomValidator en el lado del cliente. Debido a que escribimos nuestro propio script en el cliente, es importante comprobar que existe coherencia lgica con el cdigo del lado del servidor. OnServerValidate La propiedad OnServerValidate es el script que deseamos que ejecute el control CustomValidator en el lado del servidor. Debido a que escribimos nuestro propio cdigo en el servidor, es importante comprobar que existe coherencia lgica con el script del lado del cliente.

Validacin del lado del cliente y del lado del servidor

26

Validacin de entrada de datos de

usuario

Ejemplo

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

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

Procedimiento del lado del servidor El siguiente cdigo est diseado para ejecutarse en un servidor .NET, y verificar que un nmero es par: Visual Basic .NET
Sub MyServerFunction(objSource as Object, _ args as ServerValidateEventArgs) Dim intValue As Integer = args.Value If intValue mod 2 = 0 Then args.IsValid = True Else args.IsValid = False End If End Sub private void MyServerFunction(object objSource, ServerValidateEventArgs args) { int intValue = Convert.ToInt16(args.Value); if (intValue%2 == 0) { args.IsValid = true; } else { args.IsValid = false; } }

C#

Validacin de entrada de datos de

usuario

27

Demostracin: uso del control CustomValidator


Agregar un control CustomValidator Escribir el cdigo del lado del servidor Escribir el script en el lado del cliente Probar el resultado

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

Introduccin

En esta demostracin, veremos cmo utilizar un control CustomValidator. El cdigo para esta demostracin se encuentra en el proyecto Demo06VB o Demo06CS que se pueden encontrar dentro del fichero demos06.zip Ejecutar esta demostracin 1. Abrir el formulario Web Form denominado CustomValidator.aspx en Visual Studio .NET. El formulario Web Form ya dispone de un control TextBox y de un control Button.

Agregar un control CustomValidator

2. Agregar un control CustomValidator al formulario Web Form . 3. En la propiedad Text del control CustomValidator, escribir Es un nmero impar. 4. Establecer la propiedad ControlToValidate en TextBox1. 5. Hacer doble clic en CustomValidator para abrir el procedimiento de evento del lado del servidor y agregar el siguiente cdigo:
Dim intValue As If intValue mod args.IsValid Else args.IsValid End If Integer = args.Value 2 = 0 Then = True = False

Escribir el cdigo del lado del servidor Visual Basic .NET

28

Validacin de entrada de datos de


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

usuario

C#

El procedimiento de eventos del lado del servidor que Visual Studio .NET ha creado automticamente debera tener el nombre CustomValidator1_ServerValidate, y dos parmetros: source (tipo Object) y args (tipo ServerValidateEventArgs). Escribir el script del lado del cliente 6. En la propiedad ClientValidationFunction del control CustomValidator, escribir MyClientValidation. 7. Abrir el cdigo fuente HTML de la pgina CustomValidator.aspx (y no CustomValidator.aspx.vb). 8. Quitar el comentario del siguiente cdigo que se encuentra justo despus de la etiqueta <head>. Este ejemplo est en JScript:
function MyClientValidation(source, arguments) { alert("Ejecucin en el cliente"); var intValue = arguments.Value; if (intValue % 2 == 0) { arguments.IsValid = true; } else { arguments.IsValid = false; } }

Probar el resultado

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

Validacin de entrada de datos de

usuario

29

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

30

Validacin de entrada de datos de

usuario

Leccin: validacin de pginas


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

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

Introduccin

En esta leccin, estudiaremos cmo utilizar la propiedad Page.IsValid y el control ValidationSummary para verificar que todos los controles de validacin de un formulario ASP.NET Web Form son vlidos antes de que se inicie el proceso. En esta leccin, aprenderemos a: Utilizar la propiedad Page.IsValid para determinar si todos los controles de validacin de entrada de datos de una pgina son vlidos. Utilizar el control ValidationSummary para mostrar un resumen de mensajes de error en una pgina.

Objetivos de la leccin

Validacin de entrada de datos de

usuario

31

Uso de la propiedad Page.IsValid


Examina todos los controles de validacin
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!" Message.Text = "Page is valid!" ' Perform database updates or other logic here ' Perform database updates or other logic here End If End If End Sub End Sub private void cmdSubmit_Click(object s, System.EventArgs e) private void cmdSubmit_Click(object s, System.EventArgs e) { if (Page.IsValid) { if (Page.IsValid) { { } } } } Message.Text = "Page is Valid!"; Message.Text = "Page is Valid!"; // Perform database updates or other logic here // Perform database updates or other logic here

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

Introduccin

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

Uso de la propiedad Page.IsValid

32

Validacin de entrada de datos de

usuario

Ejemplo

El siguiente ejemplo muestra el controlador de eventos de un botn. El cdigo verifica la propiedad IsValid de toda la pgina. No es necesario para una clusula Else, ya que la pgina ser enviada de vuelta automticamente al navegador y los controles de validacin mostrarn sus propios mensajes de error:
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 } }

Visual Basic .NET

C#

Validacin de entrada de datos de

usuario

33

Uso del control ValidationSummary


Recopila los mensajes de error de todos los controles de validacin de la pgina Puede mostrar mensajes de texto y de error Utilizar Text="*" para indicar la ubicacin del error
<asp:ValidationSummary id="valSummary" <asp:ValidationSummary id="valSummary" runat="server" runat="server" HeaderText="These errors were found:" HeaderText="These errors were found:" ShowSummary="True" ShowSummary="True" DisplayMode="List"/> DisplayMode="List"/>

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

Introduccin

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

Muestra mensajes de texto y de error

Uso de * para localizar errores

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

34

Validacin de entrada de datos de

usuario

Ejemplo

La siguiente ilustracin muestra un par de campos de contrasea con varios controles de validacin de entrada de datos y un control ValidationSummary.

Validacin de entrada de datos de

usuario

35

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


Abrir una pgina ASP.NET con mltiples cuadros de texto y controles de validacin Agregar un control ValidationSummary Agregar un script que utilice la propiedad Page.IsValid

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

Introduccin

En esta demostracin, veremos cmo utilizar el mtodo Page.IsValid y el control Validation Summary. Los campos de esta demostracin se encuentran en el proyecto Demo06VB o Demo06CS que se pueden encontrar dentro del fichero demos06.zip Ejecutar esta demostracin

Abrir una pgina ASP.NET

1. Abrir el formulario Web Form denominado ValidationSummary.aspx en Visual Studio .NET. La pgina ya contiene dos controles TextBox. Hay un control RequiredFieldValidator y un control RangeValidator, que validan el primer cuadro de texto. La pgina tambin contiene un control RequiredFieldValidator y un control RegularExpressionValidator, que validan el segundo cuadro de texto. Adems, hay un botn Submit y un Label.

Agregar un control Validation Summary Agregar cdigo para probar la validez de la pgina Visual Basic .NET

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

3. Hacer doble clic en el control Button para abrir el controlador de eventos Click, y eliminar el comentario del siguiente cdigo:
If Page.IsValid Then lblMessage.Text = "Page is valid!" End If

C#

36

Validacin de entrada de datos de


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

usuario

4. Guardar, generar y examinar la pgina ValidationSummary.aspx. Deberamos ver el mensaje Page is valid! cuando toda la pgina sea vlida.

También podría gustarte