Los controles de validación de ASP.NET validan los datos ingresados por el usuario para garantizar que no se puedan almacenar datos inútiles, no autorizados y contradictorios.
ASP.NET proporciona los siguientes aspectos de control de validación:
Validador de campo requerido
Validador de rango
CompararValidador
Validador de expresiones regulares (RegularExpressionValidator)
Validador personalizado (CustomValidator)
Control de resumen de validación (ValidationSummary)
Las clases de validación heredan de la clase BaseValidator, por lo que heredan sus propiedades y métodos. Por tanto, aprender las propiedades y métodos de esta clase básica, que es la base de todos los controles de efectividad, será de gran ayuda para el aprendizaje posterior:
componentes | describir |
---|---|
ControlarParaValidar | Obtiene o establece el control de entrada que se va a validar. |
Mostrar | Describir cómo se muestran los mensajes de error. |
HabilitarClientScript | Indica si el cliente ha adoptado la verificación. |
Activado | Activa o desactiva el validador. |
Mensaje de error | Una cadena que describe el error. |
Texto | Texto que se mostrará si falla la validación. |
Es válido | Indica si el valor de control es válido. |
Establecer enfoque en error | Si se debe establecer el foco en el control de entrada relevante cuando falla la validación. |
Grupo de validación | Obtiene o establece el nombre del grupo de validación al que pertenece este control de validación. |
Validar | Realiza la validación del control de entrada asociado y actualiza la propiedad IsValid. |
El control RequiredFieldValidator garantiza que los campos obligatorios no estén vacíos. Está principalmente vinculado al cuadro de texto para permitir al usuario ingresar en el cuadro de texto.
La sintaxis de este control es la siguiente:
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
El control RangeValidator es responsable de verificar si el valor ingresado está dentro del rango preestablecido.
Tiene tres propiedades específicas:
propiedad | describir |
---|---|
Tipo | Define el tipo de datos. Los tipos de datos disponibles incluyen: moneda, fecha, doble, entero y cadena |
Valor Mínimo | Especifica el valor mínimo en el rango. |
Valor máximo | Especifica el valor máximo en el rango. |
La sintaxis de este control es la siguiente:
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
El control CompareValidator valida un valor basándose en el valor ingresado en otro control de entrada, un valor numérico constante o el tipo de datos correcto.
Tiene las siguientes propiedades específicas:
propiedad | describir |
---|---|
Tipo | Define el tipo de datos. |
Controlar para comparar | Especifica el valor en el control de entrada que debe compararse. |
Valor para comparar | Especifica un valor que no cambia en el control de entrada. |
Operador | Especifica el operador de comparación. Los valores disponibles incluyen: igualdad, desigualdad, mayor o igual, menor, menor o igual y verificación de tipo de datos. |
La sintaxis básica de este control es la siguiente:
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
El control RegularExpressionValidator le permite determinar la validez de la entrada haciéndola coincidir con una expresión regular. La expresión regular se establece en la propiedad ValidationExpression.
La siguiente tabla resume las estructuras de sintaxis comúnmente utilizadas en expresiones regulares:
personaje de escape | describir |
---|---|
b | Coincide con la tecla de retroceso. |
t | Pestaña de coincidencias. |
r | Coincide con la tecla Enter. |
v | Coincide con los caracteres de tabulación vertical. |
F | Coincide con el carácter de avance de formulario. |
norte | Coincide con nuevas líneas. |
personaje de fuga. |
Además de la simple coincidencia de caracteres, se puede configurar un tipo de caracteres para que coincidan. Estos caracteres se denominan comodines.
comodín | describir |
---|---|
. | Puede coincidir con cualquier carácter excepto n. |
[abcd] | Puede coincidir con cualquier personaje del conjunto. |
[^abcd] | Excluye cualquier personaje del conjunto. |
[2-7a-mA-M] | Coincide con cualquier personaje dentro de un rango específico. |
w | Coincide con cualquier grupo de caracteres alfanuméricos y el guión bajo. |
W | Coincide con cualquier carácter que no sea una palabra. |
s | Haga coincidir caracteres como espacios, tabulaciones, nuevas líneas, etc. |
S | Coincide con cualquier carácter que no sea un espacio. |
d | Coincide con cualquier carácter decimal. |
D | Coincide con cualquier carácter no decimal. |
Los cuantificadores pueden indicar un número específico de palabras en las que aparece un carácter.
cuantificador | describir |
---|---|
* | Cero o más coincidencias. |
+ | Uno o más partidos. |
? | Cero o un partido. |
{NORTE} | N coincidencias. |
{NORTE,} | N o más coincidencias. |
{NUEVO MÉJICO} | Partido entre N y M. |
La sintaxis básica de este control es la siguiente:
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
El control CustomValidator permite escribir rutinas de validación específicas del lado del cliente y del servidor para validar valores.
La validación del cliente se realiza correctamente a través de ClientValidationFunction. Las rutinas de validación del lado del cliente deben escribirse en un lenguaje de programación que el navegador comprenda, como JavaScript o VBScript.
Las rutinas de validación del lado del servidor deben ser generadas por el controlador de eventos ServerValidate del control. Las rutinas de validación del lado del servidor deben escribirse en cualquier lenguaje .Net, como C# o VB.Net.
La sintaxis básica de este control es la siguiente:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
El control ValidationSummary no realiza ninguna validación, pero muestra un resumen de todos los errores en la página. Este resumen muestra los valores de la propiedad ErrorMessage de todos los controles de validación fallidos.
Las siguientes dos listas de atributos mutuamente inclusivos enumeran mensajes de error:
ShowSummary : muestra información de error en un formato especial.
ShowMessageBox : muestra mensajes de error en una ventana separada.
La sintaxis básica de este control es la siguiente:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
Las páginas complejas tendrán diferentes conjuntos de información en diferentes niveles. En este caso, diferentes grupos tendrán diferentes verificaciones. Esta situación se puede solucionar utilizando grupos de verificación.
Para crear un grupo de validación, debe colocar el control de entrada y el control de validación en el mismo grupo lógico configurando sus propiedades ValidationGroup.
El siguiente ejemplo describe un formulario de cuatro partes que deberá completar toda la escuela para postularse para presidente. Aquí, usaremos controles de validación para validar lo que ingresa el usuario.
Así es como se ve en la vista Diseño:
El código para esta parte es el siguiente:
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="Formulario de elección de presidente: elija su presidente" runat="servidor" /> </td> </tr> <tr> <td> Candidato: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="servidor" > <asp:ListItem>Elija un candidato</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</ asp:ListItem> <asp:ListItem>Venus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="servidor" ControlToValidate ="ddlcandidate" ErrorMessage="Elija un candidato" InitialValue="Elija un candidato"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> Casa: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="servidor" RepeatLayout="Flujo"> <asp:ListItem>Rojo</asp:ListItem> <asp:ListItem>Azul</asp:ListItem> <asp:ListItem>Amarillo</asp:ListItem> <asp:ListItem>Verde</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="servidor" ControlToValidate="rblhouse" ErrorMessage="Ingrese el nombre de su casa" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> Clase: </td> <td> <asp:TextBox ID="txtclass " runat="servidor"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="servidor" ControlToValidate="txtclass" ErrorMessage="Ingrese su clase (6 - 12)" MaximumValue="12" MinimoValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> Correo electrónico: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Ingrese su correo electrónico" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Texto= "Enviar" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errores:" /></formulario>
El código para el botón de enviar es el siguiente:
protected void btnsubmit_Click(remitente del objeto, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Gracias" } else { lblmsg.Text = "Rellene todos los campos" }}