Validando controles ASP.NET – Parte 1

 

A validação dos dados é de extrema importância para a maioria das aplicações web, as informações que são enviadas para nosso banco de dados nem sempre correspondem com as solicitadas e antes de armazená-las temos que conferir para evitar futuras dores de cabeça. A tarefa de validar dados pode ser muito trabalhosa, pois envolve validar dados tanto no lado do cliente como no lado do servidor.

O ASP.NET tem um modelo de validação de dados composto de controles que são declarados na página e fazem todo este trabalho de forma quase automática e transparente para você. (Eles chegam até a verificar se o Browser do Cliente possui JavaScript para fazer a validação do lado do cliente...).

Antes de começarmos com nosso exemplo, vamos conhecer nossos controles de validação. Na aba Validation da ToolBox conforme a Figura 1, temos os seguintes controles usados para validar dados:

  1. RequiredFieldValidator
  2. RangeValidator
  3. RegularExpressionValidator
  4. CompareValidator
  5. CustomValidator
  6. ValidationSummary



 

 

 net-04-04-2008pic01.jpg

Figura 1 – Controles de Validação

Vamos aprender o que cada um deles fazem:

1- RequiredFieldValidator - Torna o controle associado de preenchimento obrigatório e verifica se o usuário digitou ou selecionou algo.
Ex: Campos de preenchimento obrigatório.

2- RangeValidator - Faz a validação do valor informado verificando se ele se encontra  dentro de um intervalo de valores aceitos pela aplicação. Permite-se a validação de um valor máximo, mínimo ou ambos.

3- RegularExpressionValidator - Verifica se os dados entrados coincide com uma expressão regular.
Ex: validações de CEP, RG, CPF, etc..

4- CompareValidator - Realiza a comparação do valor informando com um valor informado em outro controle ou com uma constante.
Ex: Validação de senhas.

5- CustomValidator - Permite que você crie o seu próprio código de validação de dados.

6- ValidationSummary - Permite a exibição de um resumo de todas as validações feitas na página

Lembrando que você pode ter mais de um controle para validar o mesmo campo.
Exemplo: o campo e-mail é de preenchimento obrigatório, e quando for realizado o preenchimento, ele verificará se é um e-mail válido.

Para que seja validado uma página, deverá estar dentro desses passos:

  1. Ocorre um Submit da página
  2. Os controles de validação entram em ação para validar os dados referentes aos controles a que estão associados.
  3. Cada controle possui a propriedade IsValid que indica se a validação foi um sucesso ou não.
  4. Após a execução de todos os controles a página, também através da propriedade IsValid , indica se os controles estão válidos ou não
  5. Se a validação foi efetuada com sucesso a página segue o fluxo normal, caso contrário mensagens de erros são apresentadas ao usuário

Vamos fazer um exemplo:

Veja na Figura 2, os campos que tenho em meu formulário:

net-04-04-2008pic02.JPG
Figura 2 – Campos do nosso formulário

Note que temos dois validadores em nosso campo de e-mail. Pois precisamos que cada um valide de uma forma.

Vamos configurá-los da seguinte forma:

A Figura 3 mostra a forma de preencher as propriedades do RequiredFieldValidator:

net-04-04-2008pic03.JPG
Figura 3
– Preenchendo as propriedades do RequiredFieldValidator1

  • ControlToValidate - TextBoxNome - o nome do controle a ser validado
  • ErrorMessage - Informe o nome do usuário - mensagem exibida quando for acionado o controle

 Com o RegularExpressionValidator faremos como nos mostra a Figura 4:

net-04-04-2008pic04.JPG
Figura 4 – Preenchendo as propriedades do RegularExpressionValidator

Note que temos várias expressões prontas para utilizarmos com o controle acima. Na sua grande maioria são padrões USA, mas podemos customizá-los, por exemplo:

O CEP padrão é: \d{5}(-\d{4})?, mas podemos deixá-los assim: \d{5}(-\d{3})?

Tudo isso significa: 5 caracteres antes do – (hífen) e 3 depois.

Para finalizar nosso exemplo, vamos ver na Figura 5 como ficará o CompareValidator:

net-04-04-2008pic05.JPG
Figura 5
Preenchendo as propriedades do CompareValidator

Com o CompareValidator temos várias formas de fazer a comparação. Nesta Figura 5 (acima) a propriedade ControlToValidate é a propriedade que será comparada com a ControlToCompare. Temos também a opção de comparar com um valor fixo por exemplo, vamos ver como funciona:

Podemos comparar o valor do controle TextBoxConfSenha com um valor fixo, no caso da Figura 6, o valor do operador seria Equal (igual) a 123.

net-04-04-2008pic06.JPG
Figura 6 – Mais opções com o CompareValidator

Outra característica da versão 2.0 do ASP.NET, é a propriedade SetFocusOnError. Quando esta propriedade esta definida como True e a consistência desse validador falhar, o foco é direcionado automaticamente para o controle que está associado ao mesmo.

Conclusão

Os validadores são uma forma elegante de tratarmos formulários em aplicações ASP.NET evitando assim, códigos Javascript que seríamos obrigados a digitar para obter o mesmo resultado. Apesar disso, na versão 1.x tínhamos o problema que vimos acima, e que, nesta nova versão foi solucionado com a adição da propriedade ValidationGroup. Trabalharemos com ele no próximo artigo.