Controles de validação 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Post on 17-Apr-2015

110 views 0 download

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