Bruno C. de Paula
Controles de validação
1º Semestre 2010 > PUCPR > BSI
Resumo da aula
O objetivo de hoje é conhecer mais alguns
dos componentes disponibilizados pelo
ASP.NET.
Vamos focar nos componentes de
validação, que permitem validações
automatizadas de componentes.
3
Lembre-se:
ASP.NET é baseado em
dezenas de
componentes visuais
Tipos de componentes
Validator Controls
 Controles
de
validação de
dados;
 Validações
automatizadas.
5
 Validation:
Chamado na
validação dos
dados fornecidos;
Depois do
Page_Load;
Antes da
chamada aos
eventos (Clique
etc);
Pode impedir o
clique.
6
Controles de Validação
 Transformam
os controles já existentes
em controles sensíveis à validação;
 A validação é armazenada no controle de
validação;
 O resultado da validação também pode ser
exibido em um sumário de validação componente ValidationSummary
Ligação via
ControlToValidate
7
Principais propriedades dos
validadores
 ControlToValidate:
8
ID do controle que deve
ser validado;
 EnableClientScript: Habilita validação via
JavaScript;
 Text: texto exibido no validador quando
ocorre o erro;
 ErrorMessage: Texto exibido no sumário de
validação;
 SetFocusOnError: Foca no controle quando
inválido após a submissão.
9
Propriedade
Text => “*”
Propriedade
ErrorMessage
=> “TxtBox1 é
Obrigatório”
Como saber se um PostBack é
válido?
10
 Page.IsValid
Não pode ser usado no PageLoad;
Usado quando não é possível validação
em JavaScript;
if(Page.IsValid)
{
• // Código para página válida
}
Passo a passo para aplicação dos
validadores
 1)
11
Tente usar os validadores:
RequiredFieldValidator: campo
obrigatório;
RangeValidator: Intervalo (numérico,
string, data);
CompareValidator: Validação do tipo de
dado, comparação entre dois componentes,
comporação entre componente e valor.
Passo a passo para aplicação dos
validadores
 2)
Se os validadores anteriores não
resolverem o problema:
RegularExpressionValidator: uso de
expressões regulares.
 3) Se os validadores anteriores não
resolverem o problema:
CustomValidator.
 4) Cheque no evento (Click, ServerValidate,
etc), a variável Page.IsValid.
12
13
RequiredFieldValidator
 Garante
que um campo seja obrigatório;
14
RangeValidator
 Verifica
um intervalo de valores;
 Propriedades Principais:
MinimumValue: Valor mínimo;
MaximumValue: Valor mínimo;
Type: Tipo de dado a ser validado:
• String;
• Inteiro;
• Double;
• Date;
• Money (Dinheiro).
15
CompareValidator
 Comparação
entre controles;
 Checagem do tipo de dado;
 Comparação entre valores;
16
CompareValidator - Propriedades
 ControlToValidate;
 ControlToCompare:
ID do controle a ser
comparado;
 Operator: operação de operação: igual,
diferente, maior que, maior ou igual, menor
que, menor ou igual, checagem do tipo de
dados (DataTypeCheck).
 Type: tipo dos valores sendo comparados;
 ValueToCompare: Valor a ser comparado.
17
RegularExpressionValidator
 Valida
a partir de uma expressão regular
contida na propriedade
ValidationExpression.
18
Expressão Regular (regexp)
Método
formal para especificar
um padrão de texto;
Composição de símbolos no
formato de regra;
O maior desafio está em
aprender a ler e escrever uma
regexp.
19
Uma expressão
regular
serve para
casar um
padrão com
um texto
20
Utilidade
Procurar
texto dentro de outro;
Separar um ou mais subtextos
dentro de um texto;
Validar texto em relação a
um padrão.
Principais metacaracteres
21
Metacarac.
Nome
Significado
Casa
Ñ Casa
.
Ponto
Um
caractere
qualquer
n.o casa
com não,
não, n-o
n.o não
casa com
na, naao
[...]
Lista
Qualquer
um
n[aã]o
n[aã]o
casa com não casa
não, nao com no,
nãão
[.-.]
Intervalo Intervalo
entre
caracts
X[1-9]Y
X[1-9]Y
casa com não casa
X1Y, X2Y com XAY
[^...]
Lista
negada
X[^a-z]
X[^a-z]
casa com não casa
XA, XB
com Xa
Qualquer
um
exceto
Principais metacaracteres
Metacaract.
Nome
Significado
Casa
?
Opcional
(0 ou 1)
Anterior pode amar?! Casa
ou não
com ama! e
ocorrer
com amar!
*
Muitos
(0 ou
muitos)
Anterior pode [ar]*a casa
ocorrer
com a, arara,
diversas
ra
vezes
+
Muitos (1 ou
muitos)
Anterior pode 5+1 casa
ocorrer
com 51, 551
diversas
vezes
22
Ñ Casa
amar? não
casa com
amado
5+1 não casa
com 1
Principais metacaracteres
Metacaract.
Nome
Significado
Casa
{,}
Muitos
(Chaves)
Anterior
5{3,5}1 casa
aparece pelo com 5551,
menos n e no 55551
máximo m
vezes
|
Ou
Um ou outro
mão|pão casa
com mão
()
Grupo
Agrupa
elementos
(\.[0-9]){3}
casa com
.0.1.2
23
Ñ Casa
5{3,5}1 não
casa com
551
Principais metacaracteres
24
Metacaract.
Nome
Significado
Casa
\d
Dígito
É um dígito (0 a
9)
\d\d\d casa com 123
\D
Não dígito
Não é um dígito
\D=\d+\+\d+ casa com
A=1+1
\w
Letra
É uma letra
\w+ casa com a, ab,
abc
25
Importante!
\
faz o escape dos caracteres;
 \. , \(, \), ...
26
Exemplos
 (\(0xx[0-9]{2}\)
?)?[0-9]{4}-[0-9]{4}
27
Casa com:
(0xx41) 32443333,
3233-3333
Não casa com:
(0 3244-3333
28
Exemplos
 ([01][0-9]|2[0-3]):[0-5][0-9]
29
Casa com:
22:30, 12:40,
01:59
Não casa com:
23:61, 25:59
CustomValidator
Propriedades principais
 Validações
30
personalizadas;
 Propriedade ControlToValidate:
Controle a ser validado;
 Propriedade ClientValidationFunction:
Função em JavaScript a ser chamada caso
necessário;
 Evento ServerValidate:
Função que verifica se o campo é válido.
Exemplo de código do evento
ServerValidate
protected void CustomValidator1_ServerValidate(object
source, ServerValidateEventArgs args)
{
// args.Value obtém o valor do campo
int num = Convert.ToInt32(args.Value);
// args.IsValid = true indica que o dado está válido
// args.IsValid = false indica que o dado está inválido
args.IsValid = (num % 2 == 0);
}
31
Validação em JavaScript
Propriedade
ClientValidationFunction
<script language="javascript" type="text/javascript">
var validarPar = function(src, args){
args.IsValid = (args.Value % 2 == 0);
}
</script>
32
Validação no Servidor agora exige a
verificação do Page.IsValid
33
protected void Button1_Click(object sender,
EventArgs e)
{
if (Page.IsValid)
{
Label1.Text =
TextBox1.Text;
}
}
34
Referências
 Portal:
http://www.asp.net/
 Início:
http://www.asp.net/get-started/
 Aprenda:
http://www.asp.net/learn/
35
Referências
 Vídeo
sobre validação (16 minutos):
http://www.asp.net/learn/videos/video7419.aspx
 ASP.NET
QuickStart:
http://quickstarts.asp.net/QuickStartv20/as
pnet/doc/ctrlref/validation/default.aspx
05/11/2015
Referências
 ASP.NET
Validation in Depth:
http://msdn.microsoft.com/enus/library/aa479045.aspx
Artigo sobre os validadores.
36
37
Referências
Portal sobre Expressões Regulares:
http://aurelio.net/er/
 Livro gratuito sobre Expressões Regulares:
http://guia-er.sourceforge.net/
 Livro sobre Expressões Regulares:
http://www.novatec.com.br/livros/expreg2/
 Uma excelente explicação para iniciantes:
http://nerdson.com/blog/em-terra-demetacaractere-quem-tem-um-asterisco-e-rei/
 Testador de regexp: http://regexpal.com/

38
Referências
 CPF
e CNPJ em C#:
http://www.devmedia.com.br/articles/view
comp.asp?comp=3950
http://buildbrasil.org/blogs/csharp/archive/
2009/06/01/valida-231-227-o-de-cpf.aspx
Download

Apresentação sobre validadores