Validando controles ASP.NET – Parte 1
Veja neste artigo como validar controles ASP.NET.
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.
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:
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:
Ocorre um Submit da página
Os controles de validação entram em ação para validar os dados referentes aos controles a que estão associados.
Cada controle possui a propriedade IsValid que indica se a validação foi um sucesso ou não.
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
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
Veja na Figura 2, os campos que tenho em meu formulário:
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:
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:
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:
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.
Figura 6 – Mais opções com o CompareValidator
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.