Clique no campo texto acima e digite um CEP
Na validação defini o formato como 8 digitos numéricos seguidos sem espaços ou traços
Se no campo você digitar qualquer coisa diferente de 8 dígitos numéricos - NÃO deve passar na validação
Note que essa validação poderia ser bem mais complexa como um CGC ou um CNPJ mas este é um exemplo simples.
Exemplo de código:
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1"
runat="server"
ErrorMessage="Erro no RegularExpressionValidator-Digite o CEP com 8 caracteres numéricos"
ControlToValidate="TextBox1"
ValidationExpression="\d{8}"
ForeColor="Red"
ToolTip="Digite um CEP ( 8 dígitos numéricos)">
</asp:RegularExpressionValidator>
Note que na expressão regular definimos d{8} ou seja, 8 dígitos numéricos decimais. Portanto
será feito 2 testes pelo menos com o campo:
1-Se tem realmente 8 dígitos. Se não tiver, falha.
2-Se os campos são numéricos (0 a 9).
São duas verificações relativamente complexas feitas de uma maneira muito simplificada. Esse
é o poder das Expressões Regulares.
Importante 1 :Não se esqueça de configurar AutoEventWireup="true" no @Page da página. Isto é que dispara o evento quando o controle perde o foco.
Importante 2 : O validator apenas coloca ou não a mensagem de erro mas não toma nenhuma atitude.
A propriedade Text do validator tem a mensagem de erro ou não e é ela que devemos utilizar
para tomar decisões como o submit da página. Podemos também verficar o valor do parametro Page.IsValid
no submit da página mas isto ocorre quando a página já foi enviada ao servidor.
A propriedade Text do validator tem a mensagem de erro ou não e podemos utilizar para tomar decisões como o submit da página mas o mais comum é o parametro Page.IsValid no submit da página mas isto ocorre quando a página já foi enviada ao servidor.
Basicamente nesse controle definimos alguns parâmetros :
•ControlToValidate : Id do Controle a ser validado.
•ErrorMessage : A mensagem a ser exibida em caso de erro.
•ForeColor : Red : A cor da mensagem em vermelho.
•ToolTip : Dica que neste caso é a mensagem 'Dica do Compare Validator'.
•O campo ValueToCompare não existe neste controle maso campo ValidationExpression
contém a Expressão Regular que valida o dado.
O parâmetro Type Não existe neste controle.
O parâmetro Operator Não existe neste controle.
Outro parâmetro importante é o EnableClientScript que possibilita criar uma rotina javascript para tratar a validação do lado do cliente antes de submeter a validação do lado do servidor.
Outro fato importante a citar sobre o CompareValidator é que ele não é um controle ASPNET mas sim AJAX e com isto funciona em páginas asp, aspx, html, etc.
No caso de termos que trabalhar com a validação em conjunto com o botão de submit faríamos o seguinte :
<asp:Button ID="btnEnviar" runat="server" Text="Enviar" OnClick="btnEnviar_Click" />
Protected Sub btnEnviar_Click(sender As Object, e As EventArgs)
Page.Validate()
If Page.IsValid Then
lblMsg.Text = "Texto validado...seguindo com submit dos dados"
End If
Se o validador aprovar o parâmetro Page.IsValid será true. Caso contrário será falso e o processo nada fará mas o validador automaticamente colocará a mensagem de erro de validação na tela.
Note que igualmente aos outros controles é quando o campo texto perde o foco que o evento de validação é disparado.
No campo args.Value dos dados recebidos pela função JavaScript está o valor do campo digitado.
args.IsValid = true/false; define se a função deve retornar que o dado é válido(true) ou falso(false).