Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Transcript of Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Controles de validação
1º Semestre 2010 > PUCPR > BSI
Bruno C. de PaulaBruno C. de Paula
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.
Lembre-se: ASP.NET é baseado em dezenas de componentes visuais
3
Tipos de componentesValidator Controls
Controles de validação de dados;
Validações automatizadas.
Validation:Chamado na
validação dos dados fornecidos;
Depois do Page_Load;
Antes da chamada aos eventos (Clique etc);
Pode impedir o clique.
5
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
6
7
Ligação viaControlToValidate
Principais propriedades dos validadoresControlToValidate: 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.
8
9
PropriedadeText => “*”
PropriedadeErrorMessage=> “TxtBox1 éObrigatório”
Como saber se um PostBack é válido?
Page.IsValidNã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}
10
Passo a passo para aplicação dos validadores1) 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.
11
Passo a passo para aplicação dos validadores2) 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
RequiredFieldValidator
Garante que um campo seja obrigatório;
13
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).
14
CompareValidator
Comparação entre controles;Checagem do tipo de dado;Comparação entre valores;
15
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.
16
RegularExpressionValidator
Valida a partir de uma expressão regular contida na propriedade ValidationExpression.
17
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.
18
19
Uma expressão regular
serve para casar um
padrão comum texto
Utilidade
Procurar texto dentro de outro;
Separar um ou mais subtextos dentro de um texto;
Validar texto em relação a um padrão.
20
Principais metacaracteres21
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 casa com não, nao
n[aã]o não casa com no, nãão
[.-.] Intervalo Intervalo entre caracts
X[1-9]Y casa com X1Y, X2Y
X[1-9]Y não casa com XAY
[^...] Lista negada
Qualquer um exceto
X[^a-z] casa com XA, XB
X[^a-z] não casa com Xa
Principais metacaracteres22
Metacaract. Nome Significado Casa Ñ Casa
? Opcional(0 ou 1)
Anterior pode ou não ocorrer
amar?! Casa com ama! e com amar!
amar? não casa com amado
* Muitos(0 ou muitos)
Anterior pode ocorrer diversas vezes
[ar]*a casa com a, arara, ra
+ Muitos (1 ou muitos)
Anterior pode ocorrer diversas vezes
5+1 casa com 51, 551
5+1 não casa com 1
Principais metacaracteres23
Metacaract. Nome Significado Casa Ñ Casa
{,} Muitos(Chaves)
Anterior aparece pelo menos n e no máximo m vezes
5{3,5}1 casa com 5551, 55551
5{3,5}1 não casa com 551
| Ou Um ou outro
mão|pão casa com mão
() Grupo Agrupa elementos
(\.[0-9]){3} casa com .0.1.2
Principais metacaracteres24
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
Importante!
\ faz o escape dos caracteres;\. , \(, \), ...
25
Exemplos
(\(0xx[0-9]{2}\) ?)?[0-9]{4}-[0-9]{4}
26
27
Casa com: (0xx41) 3244-
3333,3233-3333
Não casa com:(0 3244-3333
Exemplos
([01][0-9]|2[0-3]):[0-5][0-9]
28
29
Casa com: 22:30, 12:40,
01:59
Não casa com:23:61, 25:59
CustomValidator Propriedades principaisValidações 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.
30
Exemplo de código do eventoServerValidate
31
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);
}
Validação em JavaScriptPropriedade ClientValidationFunction
32
<script language="javascript" type="text/javascript">
var validarPar = function(src, args){ args.IsValid = (args.Value % 2 == 0);}</script>
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; } }
ReferênciasPortal:
http://www.asp.net/ Início:
http://www.asp.net/get-started/Aprenda:
http://www.asp.net/learn/
34
ReferênciasVídeo sobre validação (16 minutos):
http://www.asp.net/learn/videos/video-7419.aspx
ASP.NET QuickStart:http://quickstarts.asp.net/
QuickStartv20/aspnet/doc/ctrlref/validation/default.aspx
35
Referências
ASP.NET Validation in Depth:http://msdn.microsoft.com/en-us/
library/aa479045.aspxArtigo sobre os validadores.
3611/04/23
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-de-
metacaractere-quem-tem-um-asterisco-e-rei/ Testador de regexp: http://regexpal.com/
37
Referências
CPF e CNPJ em C#:http://www.devmedia.com.br/
articles/viewcomp.asp?comp=3950http://buildbrasil.org/blogs/csharp/
archive/2009/06/01/valida-231-227-o-de-cpf.aspx
38