Blog do Neilor

Validação de CheckBoxList com JavaScript (Custom Validator)

Publicado por: blogdoneilor em: junho 16, 2009

A validação de CheckBoxList utilizando CustomValidator, no cliente, evita postback ou chamada ajax que dependa do servidor. Isto não elimina a necessidade de validação no code-behind, pois o navegador do usuário pode estar com o javascript desativado, o que “invalidaria” esta validação.

Neste exemplo, o id do meu CheckBoxlist é “txt_menus”. Pois bem, para começar, criamos um campo oculto para guardar a quantidade de items que o CheckBoxList contém:

<asp:HiddenField ID="num_itens" runat="server" />

No code-behind (.vb), quando a lista de items for definida, seja manualmente ou através de uma query, insira o código:

num_itens.Value = txt_menus.Items.Count - 1

Perceba que foi subtraído 1 item do total pois o primeiro item da lista será o “0″ (zero).

De volta ao código da página (.aspx), próximo ao CheckBoxList, inserimos o bloco do CustomValidator:

<asp:CustomValidator ID="ValidaMenus" runat="server" ClientValidationFunction="ValidaMenus">Selecione alguma opção!</asp:CustomValidator>

E a função JavaScript que fará a validação:

function ValidaMenus(source, args)
{
var PrefixoCampos = 'ctl00_ContentPlaceHolder1_'
var MaxItens = document.getElementById(PrefixoCampos + 'num_itens').value;
var Selecionados = 0;
for(i=0; i <= MaxItens; i++)
{
ItemAtual = document.getElementById(PrefixoCampos + 'txt_menus_' + i);
if (ItemAtual.checked == true)
{
Selecionados = Selecionados +1;
}
}
if(Selecionados == 0)
{
return args.IsValid = false;
}
)

Bom, é isso! Depois você personaliza como quiser. No caso de validação de múltiplos controles, recomento o uso do ValidationSummary, sem exibição de “alert”, fica mais elegante e personalizável com css. No meu caso, costumo fazer assim:

<asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="Para continuar, corrija as seguintes pendências:" CssClass="MsgValidacao" ForeColor="" />

Abraço!

Deixe uma resposta

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

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Sobre o Neilor


Trabalho como desenvolvedor asp/asp.net/sql e nas horas horas vagas me interesso em música, videogames e filmes.

Orkut - LinkedIn



twitter do neilor

Páginas

 

junho 2009
S T Q Q S S D
« fev   jul »
1234567
891011121314
15161718192021
22232425262728
2930  
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.