Validation Groups


O problema é quando pressionamos qualquer um destes botões, todos os validadores são disparados, impossibilitando o usuário de continuar o processo, obrigando-o a preencher todo o formulário para prosseguir.

Isso foi pensado melhor e resolvido na versão 2.0 do ASP.NET e a Microsoft incluio os chamados Validation Groups que é exatamente o tema deste artigo. Como podemos ver na Figura 1 logo abaixo, o problema que acontece na versão 1.x, todos os validators são disparados, mesmo os que supostamente não deveriam ocorrer.

Figura 1 – O problema dos validadores da versão 1.x.

Como podemos reparar, quando pressionamos qualquer um dos botões, o formulário como um todo é tratato, e todos os validadores onde a consistência falha, são disparados.

Agora os controles tem uma nova propriedade, chamada ValidationGroup que receberá uma string que identificará o “Grupo” a ser validado pelo botão que desejar, e assim, tratar independentemente “ilhas” de controles nos formulários. Abaixo veremos o código HTML que exemplifica o uso dos Validation Groups:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
 
Nome 1:
<asp:TextBox
    id=”TextBox1″
    runat=”server”>
</asp:TextBox>
 
<asp:RequiredFieldValidator
    id=”RequiredFieldValidator1″
    runat=”server”
    ErrorMessage=”Digite o Nome 1″
    ControlToValidate=”TextBox1″
    SetFocusOnError=”True”
    ValidationGroup=”Grupo1″>Digite o Nome 1</asp:RequiredFieldValidator>
 
<asp:Button
    id=”Button1″
    runat=”server”
    Text=”Grupo 1″
    ValidationGroup=”Grupo1″>
</asp:Button>
 
<HR>
 
Nome 2:
<asp:TextBox
    id=”Textbox2″
    runat=”server”>
</asp:TextBox>
 
<asp:RequiredFieldValidator
    id=”Requiredfieldvalidator2″
    runat=”server”
    ErrorMessage=”Digite o Nome 2″
    ControlToValidate=”TextBox2″
    SetFocusOnError=”True”
    ValidationGroup=”Grupo2″>Digite o Nome 2</asp:RequiredFieldValidator>
 
<asp:Button
    id=”Button2″
    runat=”server”
    Text=”Grupo 2″
    ValidationGroup=”Grupo2″>
</asp:Button>
 
Código 1 – Definindo o ValidationGroup.

Podemos reparar que para “amarrar” os controles, inclusive os validadores à serem validados por um botão qualquer, definimos uma string que baseado nela, o botão apenas verificará a consistência dos validadores que também são do mesmo grupo.

Outra característica da versão 2.0 do ASP.NET, é a propriedade SetFocusOnError. Quando esta propriedade esta definida como True e a consistência desse validador falhar, o foco é direcionado automaticamente para o controle que está associado ao mesmo.

CONCLUSÃO: Os validadores são uma forma elegante de tratarmos formulários em aplicações ASP.NET evitando assim, códigos Javascript que seríamos obrigados a digitar para obter o mesmo resultado. Apesar disso, na versão 1.x tínhamos o problema que vimos acima, e que, nesta nova versão foi solucionado com a adição da propriedade ValidationGroup.

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s