miércoles, 23 de mayo de 2007

Controles de validacion en ASP.net

hi, bueno aca les dejo un codig de ejemplo sbre lo q es validacion.

bueno ire explicando cada cosa, el ejemplo tiene 5 cuadro de textos(textbox).

El primer textbox valida q se escriba cualquier numero.

El segundo valida q se haya ingresado una fecha correcta.

La tercera valida q se ingrese una fecha igual a la fecha del cuadro anterior.

EL cuarto valida q se ponga una e-mail.

El último valida q se ingrese un numero de telefono cn el siguiente formato ###-####



validar el ingreso de los datos:

A traves de un RequireFieldValidator



<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Este campo es obligatorio"

ControlToValidate="TextBox1"></asp:RequiredFieldValidator>

errormessague: indica cual es el mensaje a mostrar en caso de error al ingresar los datos

controltovalidate: es el control al cual se va a validar que no se deje en blanco, se usa en cada control de validacion.



Primer textbox



<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

su id es textbox1



el regularExpressionValidator es el usado para validar el ingreso de los numeros.

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Debe ir un numero." ControlToValidate="TextBox1" ValidationExpression="[0-9]+"></asp:RegularExpressionValidator><br />

validationExpression: es el tipo de expresion q se va a comparar con los datos ingresados para verificar si son correctos. [0-9] indica q es un numero y el + indica que la cantidad de estos puede ser cualquiera, mayor a uno.



Segundo textbox



<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Debe ir una fecha." ControlToValidate="TextBox2" Operator="DataTypeCheck" Type="Date"></asp:CompareValidator><br />

las propiedades a cambiar, aparte de las comunes (controlvalidate, errormessage), es el operator en el q se pone DataTypeCheck y en Type se escribiria Date, la primera propiedad indica como se va a comparar, igual, mayor,...; el operator datatypecheck, compara si es el mismo typo de dato el ingresado con el de la propiedad type, que en este caso es date (fecha)



Tercer textbox



<asp:CompareValidator ID="CompareValidator2" runat="server" ErrorMessage="La fecha debe ser igual que la anterior" ControlToCompare="TextBox2" ControlToValidate="TextBox3" Type="Date"></asp:CompareValidator><br />

las propiedades a cambiar en este caso es el controltocompare: al ser un comparevalidator se compara con el control textbox2; en el anterior comparevalidator no se lleno esta propiedad porq se iba a comprar con un tipo de dato, tb se llena el type: date, para q verifique q se ingreso una fecha, aunq redunda un poco.

nota: tambien existe otra propiedad, el valueToCompare que se usa en vez del controlToCompare,  se usa para comparar con un valor dado, la q se colocaria en esa propiedad.



Cuarto textbox





<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Debe ir un email válido." ControlToValidate="TextBox4" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

Este es un RegularExpressionValidator, se usa la propiedad validationExpression ne el cual hay para escoger entre varias expresiones prediseñadas, entre los cuales esta el de un correo electronico q es el q necesitamos, tambien hay de numeros telefonicos los cuales por desgracia son de EEUU, Alemania, Francia, :-(, estan la opcion para validar paginas URL, entre otras.



Quinto textbox





<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="textbox5"

ErrorMessage="Ingrese un numero telefónico válido( ###-######)" ValidationExpression="\d{3}[-]\d{6}"></asp:RegularExpressionValidator>

En este caso al igual q el textbox anterior se usa la propiedad ValidationExpression: la cualesta conformada por \d q significa una cifra es equivalente a [0-9] seguido {3} que indica q son 3 cifras luego un - y luego lo mismo q el anterior pero con 6 cifras en luar de tres.



Bueno aqui les dejo el codigo completo este se pondria en el en el cuadro amarillo







    <div>

        <asp:Label ID="Label1" runat="server" Text="Numero"></asp:Label>

        

        <asp:Label ID="Label2" runat="server" Text="Fecha1"></asp:Label>

        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 

        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Este campo es obligatorio" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>

        

        <asp:Label ID="Label3" runat="server" Text="Fecha2"></asp:Label>

        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 

        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="El campo es obligatorio" ControlToValidate="TextBox3"></asp:RequiredFieldValidator>

        <asp:CompareValidator ID="CompareValidator2" runat="server" ErrorMessage="La fecha debe ser igual que la anterior" ControlToCompare="TextBox2" ControlToValidate="TextBox3" Type="Date"></asp:CompareValidator><br />

        <asp:Label ID="Label4" runat="server" Text="E-mail"></asp:Label>

        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>

        <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="El campo es obligatorio." ControlToValidate="TextBox4"></asp:RequiredFieldValidator>

        <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Debe ir un email válido." ControlToValidate="TextBox4" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

        <br />

        <asp:Label ID="label5" runat="server" Text="Telefono"></asp:Label>

        <asp:TextBox ID="textbox5" runat="server"></asp:TextBox>

        <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="El campo es obligatorio" ControlToValidate="textbox5"></asp:RequiredFieldValidator>

        <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="textbox5"

            ErrorMessage="Ingrese un numero telefónico válido( ###-######)" ValidationExpression="\d{3}[-]\d{6}"></asp:RegularExpressionValidator> 

        <br />

        <asp:Button ID="Button1" runat="server" Text="Comprobar" /><br />

    </div>

3 comentarios:

Anónimo dijo...

BIEN AHI AHORA HAZ EL OTRO PS EL DE LOS PRODUCTOS...jiji!! xD!

Anónimo dijo...

oe ia se como se hace pa q acepte dos valores asi como t dijo el ing. con el simbolo de o ps "|" kedaria asi \d{3}[-]\d{6}|\d{3}[-]\d{2}-\d{4}

snyx dijo...

bueno el ing. me dijo q lapcion sea q acepte sin o con el guion, tambien se puede haciendo un signo de interrogacion en [-]? :P aunq al menos ya se para q es el otro jajaj.