Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Controles ASPNET Validacion PDF
Controles ASPNET Validacion PDF
Controles de validación.
Los controles de validación permiten validar los datos introducidos por el usuario.
La validación se lleva a cabo cuando se pulsa un control de tipo botón. Los controles
que pueden lanzar una validación son:
- Button
- HtmlButton
- HtmlInputButton
- HtmlInputImage
- ImageButton
- LinkButton
RequiredFieldValidator.
Este control verifica que el campo al que está asociado se ha rellenado. La propiedad
ControlToValidate permite indicar a que control se asocia. Si se incluye un control
RequiredFieldValidator a una página Web ASP.NET sin asociarle un control al que
validar, al ejecutar la aplicación se mostrará una página de error.
1/18 1
Marco Besteiro y Miguel Rodríguez Controles de Validación
2/18 2
Marco Besteiro y Miguel Rodríguez Controles de Validación
3/18 3
Marco Besteiro y Miguel Rodríguez Controles de Validación
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploReqFieldValidator
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator1;
protected System.Web.UI.WebControls.Button Button1;
…
4/18 4
Marco Besteiro y Miguel Rodríguez Controles de Validación
...
...
En el código HTML de la página WebForm1.aspx se puede ver que también se ha
añadido el control de validación y que se han indicado los valores de las propiedades
ControlToValidate, ErrorMessage, etc...
<asp:Button id="Button1"
style="Z-INDEX: 107; LEFT: 368px; POSITION: absolute; TOP: 208px"
runat="server" Width="169px" Height="28px" Text="Enviar">
</asp:Button>
</form>
</body>
</HTML>
5/18 5
Marco Besteiro y Miguel Rodríguez Controles de Validación
Figura 22.4. Resultado de pulsar el botón Enviar sin rellenar el campo usuario. El
control RequiredFieldValidator muestra el mensaje de error.
if (Page.IsValid == true)
{
Label1.ForeColor = Color.Black;
}
else
{
Label1.ForeColor = Color.Red;
}
}
6/18 6
Marco Besteiro y Miguel Rodríguez Controles de Validación
En caso de que no se introduzca valor alguno en la caja de texto del Usuario, la etiqueta
Usuario se pondrá en rojo.
Es importante indicar que este script puede ser de servidor (runat=server) o de cliente
(por defecto, si no se indica). En el caso de que sea de cliente sólo puede codificarse en
VBScript o en JScript.
…
…
<html>
<head>
<script language="C#" runat=server>
7/18 7
Marco Besteiro y Miguel Rodríguez Controles de Validación
if (Page.IsValid == true) {
LabelMensaje.Text = "El campo requerido ha sido
rellenado";
}
else {
LabelMensaje.Text = " El campo requerido está vacío";
}
}
</script>
</head>
<body>
…
…
…
…
<asp:Label id="LabelMensaje"…
…
…
<asp:Button id=Button1
text="Validar"
OnClick="BotonValidar_Click"
runat=server />
</body>
</html>
CompareValidator.
Este control permite comparar el valor introducido por el usuario en el control a validar
(propiedad ControlToValidate) con el valor introducido en otro control (propiedad
ControlToCompare) ó con una constante (propiedad ValueToCompare).
No se deben utilizar a la vez (darles valor) las propiedades ControlToCompare y
ValueToCompare.
8/18 8
Marco Besteiro y Miguel Rodríguez Controles de Validación
Porr ejemplo:
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
ControlToCompare="TextBox2"
Type="String"
runat="server"/>
RangeValidator.
La solución consiste en invocar por separado al método Validate de cada uno de los
controles y preguntar por la propiedad IsValid de cada uno de los controles.
...
...
9/18 9
Marco Besteiro y Miguel Rodríguez Controles de Validación
//
InitializeComponent();
RangeValidator1.Type = ValidationDataType.Integer;
RangeValidator1.MinimumValue = "0";
RangeValidator1.MaximumValue = "99999";
...
...
if (RequiredFieldValidator1.IsValid == true)
{
Label1.ForeColor = Color.Black;
}
else
{
Label1.ForeColor = Color.Red;
}
RangeValidator1.Validate();
if (RangeValidator1.IsValid == true)
{
Label2.ForeColor = Color.Black;
}
else
{
Label2.ForeColor = Color.Red;
}
10/18 10
Marco Besteiro y Miguel Rodríguez Controles de Validación
RegularExpresionValidator.
Este control verifica si el valor del control de entrada al que está asociado sigue una
determinada expresión regular. Este tipo de validación es interesante para números de
teléfono, direcciones de e-mail, fechas...
11/18 11
Marco Besteiro y Miguel Rodríguez Controles de Validación
RequiredFieldValidator1.Validate();
if (RequiredFieldValidator1.IsValid == true)
{
Label1.ForeColor = Color.Black;
}
else
{
Label1.ForeColor = Color.Red;
}
RangeValidator1.Validate();
if (RangeValidator1.IsValid == true)
12/18 12
Marco Besteiro y Miguel Rodríguez Controles de Validación
{
Label2.ForeColor = Color.Black;
}
else
{
Label2.ForeColor = Color.Red;
}
RegularExpressionValidator1.Validate();
if (RegularExpressionValidator1.IsValid == true)
{
Label2.ForeColor = Color.Black;
}
else
{
Label2.ForeColor = Color.Red;
}
}
CustomValidator.
13/18 13
Marco Besteiro y Miguel Rodríguez Controles de Validación
Permite definir la validación que se va a aplicar a un control. Para crear una función de
validación se ha de programar un manejador para el evento ServerValidate. Este
evento recibe un objeto ServerValidateEventArgs como parámetro. La propiedad
Value de este objeto contiene el string con el contenido del control a validar. El
resultado de la validación se almacena en la propiedad IsValid del objeto
ServerValidateEventArgs (si es false o es puesto a false, se muestra el control
CustomValidator).
Si se desea crear una función de validación del lado del cliente se ha de introducir un
script con tal función en la página .aspx e indicarla en la propiedad
ClientValidationFunction del control CustomValidator. Debido a que esta función
se va a ejecutar en el cliente, debe ser escrita en VBScript o en JScript.
El resultado de ejecutar la aplicación e introducir como nombre de usuario Pepe será ver
el mensaje del control CustomValidator1 y ver también el texto Pepe en rojo.
14/18 14
Marco Besteiro y Miguel Rodríguez Controles de Validación
...
...
<script language=”vbscript”>
</script>
</body>
</html>
15/18 15
Marco Besteiro y Miguel Rodríguez Controles de Validación
Por defecto, el documento .aspx, cuando se crea con Visual Studio .NET, toma
JavaScript como lenguaje por defecto para los scripts de cliente. Esto se puede ver en la
ventana de propiedades de la clase DOCUMENT (esta clase representa el documento o
página Web generada a partir de la página .aspx). La propiedad en la que se indica es
defaultClientScript.
ValidationSummary.
16/18 16
Marco Besteiro y Miguel Rodríguez Controles de Validación
Un control de esta clase permite hacer un sumario de todos los mensajes de error de
todos los controles de validación de una página Web. El sumario de errores se muestra
por defecto como una lista de puntos (el formato de la lista se puede cambiar mediante
la propiedad DisplayMode).
La lista de puntos muestra todos los errores que se han detectado al validar la página por
los distintos controles de validación pero se refresca en cada nueva validación, es decir,
no acumula los errores de anteriores validaciones.
En muchos casos es posible crear un control ASP.NET a partir de una página ASP.NET
simplemente cambiado la extensión .aspx por .ascx y la extensión .aspx.cs por
17/18 17
Marco Besteiro y Miguel Rodríguez Controles de Validación
.ascx.cs (o bien copiando el contenido del .aspx y del .aspx.cs sobre un .ascx y un
.ascx.cs respectivamente). Es importante saber que en este tipo de controles no se
soportan los controles de validación.
Si se desea construir un control ASP.NET puro, sin página web asociada, se puede
utilizar el asistente, eligiendo la opción Librería de controles Web.
El resultado será un
control derivado de la clase
System.Web.UI.WebControls.WebControl o de una clase derivada de ésta y estará
contenido en un fichero .ascx.
18/18 18