controles de validação 1º semestre 2010 > pucpr > bsi bruno c. de paula
TRANSCRIPT
![Page 1: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/1.jpg)
Controles de validação
1º Semestre 2010 > PUCPR > BSI
Bruno C. de PaulaBruno C. de Paula
![Page 2: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/2.jpg)
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.
![Page 3: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/3.jpg)
Lembre-se: ASP.NET é baseado em dezenas de componentes visuais
3
![Page 4: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/4.jpg)
Tipos de componentesValidator Controls
Controles de validação de dados;
Validações automatizadas.
![Page 5: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/5.jpg)
Validation:Chamado na
validação dos dados fornecidos;
Depois do Page_Load;
Antes da chamada aos eventos (Clique etc);
Pode impedir o clique.
5
![Page 6: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/6.jpg)
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
![Page 7: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/7.jpg)
7
Ligação viaControlToValidate
![Page 8: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/8.jpg)
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
![Page 9: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/9.jpg)
9
PropriedadeText => “*”
PropriedadeErrorMessage=> “TxtBox1 éObrigatório”
![Page 10: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/10.jpg)
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
![Page 11: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/11.jpg)
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
![Page 12: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/12.jpg)
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
![Page 13: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/13.jpg)
RequiredFieldValidator
Garante que um campo seja obrigatório;
13
![Page 14: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/14.jpg)
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
![Page 15: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/15.jpg)
CompareValidator
Comparação entre controles;Checagem do tipo de dado;Comparação entre valores;
15
![Page 16: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/16.jpg)
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
![Page 17: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/17.jpg)
RegularExpressionValidator
Valida a partir de uma expressão regular contida na propriedade ValidationExpression.
17
![Page 18: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/18.jpg)
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
![Page 19: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/19.jpg)
19
Uma expressão regular
serve para casar um
padrão comum texto
![Page 20: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/20.jpg)
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
![Page 21: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/21.jpg)
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
![Page 22: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/22.jpg)
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
![Page 23: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/23.jpg)
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
![Page 24: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/24.jpg)
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
![Page 25: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/25.jpg)
Importante!
\ faz o escape dos caracteres;\. , \(, \), ...
25
![Page 26: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/26.jpg)
Exemplos
(\(0xx[0-9]{2}\) ?)?[0-9]{4}-[0-9]{4}
26
![Page 27: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/27.jpg)
27
Casa com: (0xx41) 3244-
3333,3233-3333
Não casa com:(0 3244-3333
![Page 28: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/28.jpg)
Exemplos
([01][0-9]|2[0-3]):[0-5][0-9]
28
![Page 29: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/29.jpg)
29
Casa com: 22:30, 12:40,
01:59
Não casa com:23:61, 25:59
![Page 30: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/30.jpg)
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
![Page 31: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/31.jpg)
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);
}
![Page 32: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/32.jpg)
Validação em JavaScriptPropriedade ClientValidationFunction
32
<script language="javascript" type="text/javascript">
var validarPar = function(src, args){ args.IsValid = (args.Value % 2 == 0);}</script>
![Page 33: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/33.jpg)
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; } }
![Page 34: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/34.jpg)
ReferênciasPortal:
http://www.asp.net/ Início:
http://www.asp.net/get-started/Aprenda:
http://www.asp.net/learn/
34
![Page 35: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/35.jpg)
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
![Page 36: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/36.jpg)
Referências
ASP.NET Validation in Depth:http://msdn.microsoft.com/en-us/
library/aa479045.aspxArtigo sobre os validadores.
3611/04/23
![Page 37: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/37.jpg)
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
![Page 38: Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula](https://reader035.vdocuments.com.br/reader035/viewer/2022062318/552fc0fe497959413d8bbaab/html5/thumbnails/38.jpg)
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