Controles de validación en el servidor[Valide controles como cajas de texto]Fecha: 29/Jul/2005 (28/07/2005)
|
Bueno antes que todo, quiero darles a conocer algo sobre mí… pues yo llevo muy poco tiempo desarrollando con .Net (casi 3 meses) y con tan poco tiempo me di cuenta de lo completa y útil que es esta tecnología, al facilitarnos bastante el desarrollo de aplicaciones, ya sean Windows o Web… no estoy siendo ningún sobón =D… pero le pese a quien le pese (ya que existe una gran cantidad de detractores de Microsoft) el .Net es un gran cambio (para bien) en la programación en la implementación de aplicaciones Windows… y Web por supuesto.
Quizá este tema resulte muy sencillo para quien ya maneja ASP.Net… pero mi objetivo es el llegar a quién recién ha empezado con .Net… además brindar una pequeña ayuda a quien se encuentra estudiando en el programa DCE… ya que controles de validación es uno de los temas a tratar en dicho curso.
Pues creo que me escapé un poco de los controles de validación (empieza de una vez!!!)… pues antes de ver a estos, tenemos algo sobre los controles en el servidor con los que nos permite trabajar ASP.Net…
Controles de Servidor
Como su mismo nombre lo indica, son aquellos que nos permiten trabajar de lado del servidor, con la particularidad de que se trabaja manejando eventos, o sea los webforms trabajarán tal y como se hace con las aplicaciones Windows, donde se disponen los controles que van a actuar, pero dependiendo de la interacción del usuario, es decir a través de la realización de algo tan simple, como el llenado de un TextBox…
Además de esto, estos controles no solo nos permiten trabajar en una estructura solo orientada a eventos, sino que permiten que nuestro desarrollo sea consumido por diferentes browsers o inclusive que nuestra página pueda ser accedida por distintos dispositivos como Televisores, Móviles… todo gracias a la ayuda del .Net Framework.
Surge la necesidad de acceder a las propiedades, métodos o eventos del elemento desde el código del servidor.
Tenemos los controles de servidor en ASP.Net:
· HTML Server Controls
Los mismos controles HTML pero con la diferencia de que esta vez trabajando del lado del servidor.
· ASP.Net Web Forms Controls
Nuevamente controles HTML pero esta vez los de formularios como TextBox, Buttons…
· ASP.Net List Controls
Nos permite crear listas para mostrar el contenido de bases de datos.
· ASP.Net Mobile Controls
Que tienen la misma funcionalidad que los WebForm o List Controls, con la particularidad que se aplican de acuerdo al dispositivo cliente (que podría ser un dispositivo móvil).
Y por último, lo que trataremos:
ASP.Net Validation Controls o traducido… Controles de Validación
Son aquellos que nos permiten, como su mismo nombre lo dice, validar las entradas en las que el usuario escribirá o selecionará algo pedido por la página.
Lo bueno es que existen distintos tipos de validación, así, la gran cantidad de casos para validar, e incluso la opción para crear un propio criterio de validación, nos permite trabajar más ordenadamente con el usuario.
Antes de pasar a ver todos los controles de validación y específicamente los casos en los que se aplica cada uno, veremos la clase base de validación…
Debemos importar el NameSpace:
System.Web.UI.WebControls.BaseValidator
Allí tenemos a la clase BaseValidator, que sirve como base abstracta para controles de validación y nos proporciona toda la implementación básica para los controles de validación.
Esta clase contiene muchas propiedades, las más importantes:
· ControlToValidate:
Establece u obtiene el nombre del control que contiene el valor a validar.
· Display
Obtiene o establece el comportamiento de presentación del mensaje de error en un control de validación. Puede ser None, Static o Dynamic.
· Enabled:
Indica si la validación se debe realizar o no.
· ErrorMessage:
Obtiene o establece el mensaje de error.
· IsValid
Nos indica si es que el valor ingresado por el usuario en el control pasó la validación.
Algunos métodos de BaseValidator:
· Validate
Realiza la validación en le control asociado y actualiza la propiedad IsValid.
· GetValidationProperty
Función auxiliar para obtener la propiedad de validación de un control, si existe.
Para más información acerca de las propiedades y métodos del BaseValidator, visite:
http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/cpref/html/frlrfsystemwebuiwebcontrolsbasevalidatorclasstopic.asp
Ahora sí, veremos todos los controles de validación que nos brinda el ASP.Net:
- RequiredFieldValidator
Se utiliza para establecer un control de entrada como obligatorio, es decir verifica que la entrada tenga algún valor.
Aquí tenemos un ejemplo de como validar con el RequiredFieldValidator un input del tipo text… o mejor dicho una caja de texto:
<input type=“text” id=“txtprueba” runat=“server”>
<asp:RequiredFieldValidator id=“nombre"
runat="server"
ErrorMessage=“Este campo es obligatorio”
ControlToValidate=“txtprueba”
Display=“dynamic”>*</asp:RequiredFieldValidator>
Nota: El * indica que la caja de texto es un campo obligatorio.
RangeValidator
Verifica que el control a validar esté dentro de un rango numérico, por eso se debe establecer un límite superior e inferior del intervalo (esto se especifica en las propiedades MaximunValue y MinimumValue).
Además establecer el tipo de datos que contendrá la caja de texto (esto en la propiedad Type). Aquí tenemos un ejemplo de cómo validar una caja de texto donde se colocará por ejemplo la edad del usuario:
<input type=“text” id=“txtedad” runat=“server”>
<asp:RangeValidator id=“ValidaCajas"
runat="server"
ControlToValidate=“txtedad“
MaximunValue=“100”
MinimunValue=“1”
Type=“Integer”
ErrorMessage= “No es una edad válida”Display=“dynamic”> La edad debe estar entre 1 y 100
</asp:RangeValidator>
CompareValidator
Este control simplemente compara el contenido de un control con el de otro, dependiendo del tipo del operador que se utiliará para comparar. Por eso tiene un propiedad llamada ControlToCompare donde se especificará el control que se comparará con el control asignado por la propiedad ControlToValidate.
Además tenemos que asignar el operador para comparar los controles, esto en la propiedad Operator.
Aquí un ejemplo, se comparan 2 cajas de texto, en la primera el usuario ingresará una contraseña y en la segunda, el usuario confirmará la misma, por eso se validará para que ambas cajas contengan lo mismo, esto muy usual en las páginas de suscripción a algún servicio (como una mensajería de correo electrónico).
<input type=“text” id=“pwd” runat=“server”>
<input type=“text” id=“repwd” runat=“server”>
<asp:CompareValidator id=“ValidaPWD"
runat="server"
ControlToValidate=“pwd“
ControlToCompare=“repwd”
Operator=“Equal”ErrorMessage=“ Las contraseñas son diferentes”
Display=“dynamic”> Las contraseñas deben coincidir.
</asp:RangeValidator>
Nota: La propiedad Operator sería Equal que indica que la validación debe verificar que el contenido de los controles sean iguales.
RegularExpressionValidator
Este control verifica que el valor ingresdo en el control tenga un formato o modelo predeterminado por el desarrollador.
Esta expresión predeterminada se indica en la propiedad ValidationExpression. Aquí un ejemplo de como validar para que se ingrese un formato de e-mail.
<input type=“text” id=“txtemail” runat=“server”>
<asp:RegularExpressionValidator id=“validacorreo"
runat="server"
ControlToValidate=“txtemail”ValidationExpression=”.*@.*\.*”
ErrorMessage=“Debe ingresar un e-mail válido"
Display=“dynamic”>No tiene formato de e-mail
</asp:RangeValidator>
CustomValidator
Permite realizar una validación predefinida por una función creada por el desarrollador. Además verifica que el control no esté vacío.
La función que se utilizará para validar se indicará en ClientValidationFunction.
<input type=“text” id=“txtval” runat=“server”>
<asp:CompareValidator id=“valclientfunction"
runat="server"
ControlToValidate=“txtval“
ClientValidationFunction=“ClientFunction”
ErrorMessage=“No es válido”Display=“dynamic”>
</asp:CompareValidator>
Bueno espero que haya explicado bien el tema, es mi primer artículo sobre .Net y pronto vendrán más…
Marlon Alberto Vereau Vera
Estudiante de Ing. De Sistemas 3er ciclo
Universidad Nacional de Trujillo – Perú
DCE 2