Escolar Documentos
Profissional Documentos
Cultura Documentos
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 1
Descripción
***************************** use******************************
***************************** use******************************
***************************** use******************************
***************************** use******************************
Introducción 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.
Validación del lado del La validación del lado del cliente mejora el uso del formulario Web Form
cliente 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
6 Validación de entrada de datos de usuario
***************************** use******************************
Controles de validación ASP.NET incluye los controles de validación que se muestran en la siguiente
tabla.
Control de validación Función
***************************** use******************************
1.
11 Agregar un control de validación
<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******************************
z Dinámico
***************************** use******************************
Mensajes de error 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.
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>
Establecer la propiedad La propiedad Display establece el espacio de mensajes de error desde múltiples
Display 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.
Validación de entrada de datos de usuario 13
***************************** use******************************
Control RequiredFieldValidator
El siguiente código define el control RequiredFieldValidator que verifica
que hay una entrada en txtPhone1:
<asp:RequiredFieldValidator
id="RequiredtxtPhone1Validator1"
runat="server"
ErrorMessage=
"A telephone number is required"
ControlToValidate="txtPhone1"
Text="*">
</asp:RequiredFieldValidator>
Control RegularExpressionValidator
El siguiente código define el control RegularExpressionValidator que
verifica que la entrada en txtPhone1 coincide con el modelo de número de
teléfono de Estados Unidos:
<asp:RegularExpressionValidator
id="RegulartxtPhone1Validator1"
runat="server"
ErrorMessage=_
"This telephone number is not formatted correctly"
ControlToValidate="txtPhone1"
ValidationExpression=
"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"
Text="*">
</asp:RegularExpressionValidator>
Control CustomValidator
El siguiente código define el control CustomValidator que invoca la
función MyServerValidation, que compara la entrada en txtPhone1 con
una base de datos de números de teléfono:
<asp:CustomValidator
id="CustomValidator1"
OnServerValidate = "MyServerValidation"
runat="server"
ErrorMessage="This telephone number is not recognized"
ControlToValidate="txtPhone1"
Text="*">
</asp:CustomValidator>
Validación de entrada de datos de usuario 15
RequiredFieldValidator
z InitialValue
CompareValidator
z ValueToComparar o ControlToComparar
z Type
z Operator
RangeValidator
z MinimumValue
z MaximumValue
z Type
Código de ejemplo
***************************** use******************************
<asp:RequiredFieldValidator id="txtNameValidator"
runat="server"
ControlToValidate="txtName"
InitialValue="Enter your name"
ErrorMessage="You must enter your name"
Display="dynamic"
Text="*">
</asp:RequiredFieldValidator>
Uso del control Utilizamos el control CompareValidator para probar la entrada de datos del
CompareValidator 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.
Validación de entrada de datos de usuario 17
Uso del control El control RangeValidator se utiliza para comprobar si el valor introducido
RangeValidator 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.
Código de ejemplo
***************************** use******************************
Introducción 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.
20 Validación de entrada de datos de usuario
Ejemplo de una El siguiente código de ejemplo muestra cómo podemos utilizar un control
expresión simple RegularExpressionValidator para comprobar si un usuario ha introducido una
dirección electrónica válida:
<asp:TextBox id="txtEmail" runat="server" />
<asp:RegularExpressionValidator id="txtEmail_validation"
runat="server"
ControlToValidate="txtEmail"
ErrorMessage="Use the format username@organization.xxx"
ValidationExpression="\w+@\w+\.\w+"
Text="*">
</asp:RegularExpressionValidator>
Validación de entrada de datos de usuario 21
***************************** use******************************
ControlToValidate TextBox1
ErrorMessage Texto del mensaje de error
Text Se requiere entrada de datos
ControlToValidate TextBox1
ErrorMessage Texto del mensaje de error
Text Fuera del intervalo
MaximumValue 100
MinimumValue 16
Type Entero
Código de ejemplo
***************************** use******************************
Ejemplo 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" />
***************************** use******************************
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).
Escribir el script del 6. En la propiedad ClientValidationFunction del control CustomValidator,
lado del cliente 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;
}
}
***************************** use******************************
Sub
Sub cmdSubmit_Click(s
cmdSubmit_Click(s As As Object,
Object, ee As
As EventArgs)
EventArgs)
If
If Page.IsValid
Page.IsValid Then
Then
Message.Text
Message.Text == "Page
"Page is
is valid!"
valid!"
'' Perform
Perform database
database updates
updates or
or other
other logic
logic here
here
End
End If
If
End
End Sub
Sub
private
private void
void cmdSubmit_Click(object
cmdSubmit_Click(object s,
s, System.EventArgs
System.EventArgs e)
e)
{{ if
if (Page.IsValid)
(Page.IsValid)
{{ Message.Text
Message.Text == "Page
"Page is
is Valid!";
Valid!";
//
// Perform
Perform database
database updates
updates or
or other
other logic
logic here
here
}}
}}
***************************** use******************************
Introducción .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.
Uso de la propiedad Para determinar si todos los controles de validación de una página son válidos,
Page.IsValid 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.
<asp:ValidationSummary
<asp:ValidationSummary id="valSummary"
id="valSummary"
runat="server"
runat="server"
HeaderText="These
HeaderText="These errors
errors were
were found:"
found:"
ShowSummary="True"
ShowSummary="True"
DisplayMode="List"/>
DisplayMode="List"/>
***************************** use******************************
Uso de * para localizar Cuando se utiliza el control ValidationSummary, la propiedad Text (si se
errores 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.
34 Validación de entrada de datos de usuario
***************************** use******************************
C#
36 Validación de entrada de datos de usuario
if (Page.IsValid)
{
lblMessage.Text = "Page is valid!";
}