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:
|
|
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.