Build Brasil
Treinamentos FCamara
Validação com Imagem

Olá pessoal,

Hoje vou ensinar como usar os controles RequiredFieldValidator, RegularExpressionValidator, CompareValidator, RangeValidator e CustomValidator com imagem. Não entendeu? Então imagine o seguinte controle em uma página ASP.Net.

01

E tivesse um RequiredFieldValidator ao controle, para caso o controle não fosse preenchido a tela ficasse da seguinte forma:

02 
A definição do campo senha é o seguinte:

<asp:TextBox ID="TextBoxSenha" runat="server"
TextMode="Password" MaxLength="20"> </asp:TextBox>

O RequiredFieldValidator deverá ser definido ANTES do controle senha. A declaração final deverá ficar assim:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ControlToValidate="TextBoxSenha" Display="Dynamic">
    <asp:Image ID="Image1" runat="server" ImageUrl="Invalido.gif" />
</asp:RequiredFieldValidator>
<asp:TextBox ID="TextBoxSenha" runat="server" 
TextMode="Password" MaxLength="20"> </asp:TextBox>

Pronto! Conseguimos usar uma imagem para ilustrar que um campo não está válido.
Mas com sempre, eu não gosto de problemas fáceis. Por que problemas fáceis nunca aparecem no dia-a-dia. Vamos complicar então.

Como vamos fazer para mostrar apenas UMA imagem para a seguinte situação:

03
Pensando rápido, a solução seria colocar dois RequiredFieldValidator, onde um validaria o ddd e outro o telefone. Então vamos colocar e ver o que acontece. O código ficaria assim:

<asp:RequiredFieldValidator ID="RequiredFieldValidatorDDDFixo"
runat="server" ControlToValidate="TextBoxDDDFixo"
Display="Dynamic"> <asp:Image ID="Image14" runat="server" SkinID="ImageInvalid" /> </asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RequiredFieldValidatorTelFixo"
runat="server" ControlToValidate="TextBoxTelFixo"
Display="Dynamic"> <asp:Image ID="Image13" runat="server" SkinID="ImageInvalid" /> </asp:RequiredFieldValidator> <asp:TextBox ID="TextBoxDDDFixo" runat="server"
MaxLength="4"></asp:TextBox> <asp:TextBox ID="TextBoxTelFixo" runat="server"
MaxLength="20"></asp:TextBox>

Ao executarmos a aplicação, teremos o seguinte resultado:

04
As imagens ficaram uma ao lado da outra. E o que nós queremos é apenas UMA imagem.

Vamos à solução. O que devemos fazer então, é colocar os controles do tipo RequiredFieldValidator dentro de uma div. Da seguinte forma:

<div style="width:18px; height:20px;">
    <asp:RequiredFieldValidator ID="RequiredFieldValidatorDDDFixo"
runat="server" ControlToValidate="TextBoxDDDFixo"
Display="Dynamic"> <asp:Image ID="Image14" runat="server" SkinID="ImageInvalid" /> </asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RequiredFieldValidatorTelFixo"
runat="server" ControlToValidate="TextBoxTelFixo"
Display="Dynamic"> <asp:Image ID="Image13" runat="server" SkinID="ImageInvalid" /> </asp:RequiredFieldValidator> </div> <asp:TextBox ID="TextBoxDDDFixo" runat="server"
MaxLength="4"></asp:TextBox> <asp:TextBox ID="TextBoxTelFixo" runat="server"
MaxLength="20"></asp:TextBox>

A div tem a finalidade fixar um tamanho. Esse tamanho é fixado no tamanho de apenas uma imagem.

O resultado será o seguinte:

- Não preenchendo nada

05

- Preenchendo apenas o DDD

06

- Preenchendo DDD e telefone

07

 É isso aí pessoal,
Espero que tenham gostado.

[]’s e até a próxima.


Posted 25 Jun 2009 16:19 by Marcos Sabino Filho
Copyright© Build Brasil 2004 - 2009 - Todos os Direitos Reservados
Powered by Community Server (Commercial Edition), by Telligent Systems