Aprendendo Sobre controles de validação

 

Este artigo é apenas para acabar com algumas dúvidas que vejo nos fóruns existentes na web.

Neste artigo vou mostrar alguns exemplos e aplicações para todos os controles de validação, com exceção do RequiredFieldValidator o qual é o mais simples e fácil de utilizar.

 

Vamos então ao trabalho...

 

Começamos com o CompareValidator.

 

CompareValidator_Simples


<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Controle de Validação</title>

</head>

<body>

<form id="Form1" runat="server">

<table border="0" bgcolor="#b0c4de">

<tr valign="top">

<td colspan="4"><h4>

  Comparando dois valores:</h4></td>

</tr>

<tr valign="top">

<td><asp:TextBox id="txt1" runat="server" /></td>

<td> = </td>

<td><asp:TextBox id="txt2" runat="server" /></td>

<td style="width: 63px">

<asp:Button ID="btnValidar" Text="Validar" runat="server" /></td>

</tr>

</table>

<br />

<asp:CompareValidator

id="CompareValidator1"

Display="dynamic"

ControlToValidate="txt1"

ControlToCompare="txt2"

ForeColor="red"

BackColor="yellow"

Type="Double"

EnableClientScript="false"

Text="Valores não são iguais"

runat="server" />
</
form>

</body>
</
html>

Execute sua aplicação e faça alguns testes com esse exemplo!!!

 

CompareValidator_Usando um List

 

Vamos agora dar ao usuário a opção de escolha entre comparar valores "iguais" ou "diferentes" através do evento OnSelectedIndexChanged do ListBox.

 


<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Controle de Validação</title>

</head>

<body>

<form id="Form1" runat="server">

<table border="0" bgcolor="#b0c4de">

<tr valign="top">

<td colspan="4"><h4>

  Comparando 2 valores</h4></td>

</tr>

<tr valign="top">

<td><asp:TextBox id="txt1" runat="server" /></td>

<td>

<asp:ListBox id="list" rows="2" OnSelectedIndexChanged="check_operador" runat="server">

<asp:ListItem value="Equal" selected>=</asp:ListItem>

<asp:ListItem value="NotEqual"><></asp:ListItem>

</asp:ListBox>

</td>

<td><asp:TextBox id="txt2" runat="server" /></td>

<td><asp:Button ID="btnValidar" Text="Validar" runat="server" /></td>

</tr>

</table>

<br />

<asp:CompareValidator

id="CompareValidator1"

Display="dynamic"

ControlToValidate="txt1"

ControlToCompare="txt2"

ForeColor="red"

BackColor="yellow"

Type="String"

EnableClientScript="false"

Text="Dados Incorretos!"

runat="server" />

</form>

</body>
</html>

Em seguida selecione o ListBox e na janela Properties clique no botão Events e selecione o evento OnSelectedIndexChanged. Digite o nome para o procedimento (check_operador) e com um duplo clique sobre este nome edite o seguinte código:

protected void check_operador(object sender, EventArgs e)

  {

    CompareValidator1.Operator = (ValidationCompareOperator)list.SelectedIndex;

    CompareValidator1.Validate();

  }

Execute sua aplicação e veja o resultado.

 

CustomValidator

 

Vamos agora usar um controle customizado.

 

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Validação de Dados</title>

</head>

<body>

  <form id="Form1" runat="server">

  <asp:Label ID="Label1" runat="server" Text="Nome de Usuário: " />

  <asp:TextBox id="txt1" runat="server" />

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

  <br />

  <asp:Label id="mess" runat="server"/>

  <br />

  <asp:CustomValidator ID="CustomValidator1"

  ControlToValidate="txt1"

  OnServerValidate="validaUsuario"

  Text="O Nome de usuário deve ter entre 8 e 16 caracteres!"

  runat="server"/>

  </form>

</body>
</html>

Abra o arquivo de código ".cs" e digite o seguinte código:

protected void validaUsuario(object source, ServerValidateEventArgs args)

  {

   if (args.Value.Length < 8 || args.Value.Length > 16)

   {

    args.IsValid=false;

   }

   else

   {

    args.IsValid=true;

   }

  }

Neste exemplo verificamos o número de caracteres fornecido pelo usuário. Rode sua aplicação e entre com um valor no texbox.

 

RangeValidator Simples

 

Vamos forçar nosso usuário a digitar uma data válida.

 

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Untitled Page</title>

</head>

<body>

   <form id="Form1" runat="server">

      Digite uma data valida entre 01/01/2005 e 31/12/2005:

  <br />

  <asp:TextBox id="tbox1" runat="server" />

  <br /><br />

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

  <br /><br />

  <asp:RangeValidator ID="RangeValidator1"

  ControlToValidate="tbox1"

  MinimumValue="01/01/2005"

  MaximumValue="31/12/2005"

  Type="Date"

  EnableClientScript="false"

  Text="A data informada deve estar entre 01/01/2005 e 31/01/2005"

  runat="server" />

  </form>

</body>

</html>

 

Vamos agora usar o RangeValidator associado a um evento.


<
html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
<form id="Form1" runat="server">
  Digite um número entre 1 e 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button ID="Button1" Text="Submit" OnClick="enviar" runat="server" />
<br /><br />
<asp:Label id="lbl1" runat="server" />
<br />
<asp:RangeValidator ID="RangeValidator1"
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
EnableClientScript="false"
Text="O Valor informado deve estar entre 1 e 100!"
runat="server" />
</form>
</body>
</html>

 

No arquivo de código digite o procedimento que segue:

protected void enviar(object sender, EventArgs e)

  {

    if (Page.IsValid)

{ lbl1.Text = "Página validada com sucesso!";}

    else

    {lbl1.Text = "Página não é valida";}

  }

 

Agora vamos usar o RegularExpressionValidator

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Validação de Dados</title>

</head>

<body>

<form id="Form1" runat="server">

  Digite um CEP valido:

<asp:TextBox id="txtbox1" runat="server" />

<br /><br />

<asp:Button ID="Button1" text="Submit" OnClick="enviar" runat="server" />

<br /><br />

<asp:Label id="lbl" runat="server" />

<br />

<asp:RegularExpressionValidator ID="RegularExpressionValidator1"

ControlToValidate="txtbox1"

ValidationExpression="\d{8}"

EnableClientScript="false"

ErrorMessage="O CEP deve conter 9 caracteres!"

runat="server" />

</form>
</body>
</
html>

E no aruqivo de código insira o procedimento:

protected void enviar(object sender, EventArgs e)

  {

    if (Page.IsValid)

    {

      lbl.Text = "CEP validado com sucesso!";

    }

    else

    {

      lbl.Text = "Este CEP não é valido";

    }
  }


O Valor "\d{8}" da propriedade
ValidationExpression  indica:

\ - Caracter de scape

d – Valor do tipo Double

{8} – Com 8 digitos

Vale salientar que como podemos observar, em alguns controles de validação ainda podemos usar Page.IsValid para executar determinadas tarefas. A título de exemplo apenas usei um Label para mostrar uma mensagem...

Bem pessoal, vou ficando por aqui com mais esta dica que pode ser útil a todos (ou não..rsrsrsrsrsr), mas o que vale mesmo é a intensão de ajudar!!!

Um grande abraço e até breve!!!