Utilizando CustomValidator para validar CheckBoxList – Parte I

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Um dos grupos de controles mais úteis na ToolBox do Visual Studio são os Validators.

 

Um dos grupos de controles mais úteis na ToolBox do Visual Studio são os Validators.

 

Agora vamos pensar na seguinte tarefa, ao criar uma pesquisa na web, precisamos torna obrigatória uma pergunta, mas essa pergunta é de múltipla escolha (checkboxlist). Como resolvemos essa situação já nenhum controle de validação, valide sozinho esse controle?

 

Vamos resolver essa situação utilizando o CustomValidator.

 

Quando eu perguntei sobre validar sozinho, eu quis frisar que nenhum controle de validação faz a validação de um checkboxlist sem que seja feita algum tipo de programação.

 

A solução

Crie um projeto de WebSite em C# com seu visual studio 2005. Na página default.aspx crie um objeto checkboxlist conforme a Listagem 01.

 

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal">

    <asp:ListItem>1</asp:ListItem>

    <asp:ListItem>2</asp:ListItem>

    <asp:ListItem>3</asp:ListItem>

    <asp:ListItem>4</asp:ListItem>

    <asp:ListItem>5</asp:ListItem>

</asp:CheckBoxList>

Listagem 01 – RadioButtonList

 

Para criação desse controle apenas araste uma instância do checkboxlist para a página e crie 5 itens, com a propriedade Text e Value iguais e correspondente aos valores de 1 a 5. Na Listagem 02 logo abaixo, temos o código do controle CustomValidator

 

<asp:CustomValidator ID="CustomValidator1" runat="server"

ErrorMessage="Campo Obrigatório" OnServerValidate="ValidaCheckBox">

</asp:CustomValidator>

Listagem 02 – CustomValidator

 

A propriedade mais importante é a OnServerValidate. Essa propriedade deve conter o nome do método que você quer executar para validar o checkboxlist quando o evento ServerValidate for disparado. Esse evento é disparado sempre após o Load da página dentro do ciclo de vida da mesma (ver mais sobre o ciclio de vida da página em: http://msdn2.microsoft.com/en-us/library/ms178472.aspx).

 

O temos que fazer agora é codificar esse método ValidaCheckBox para executar o que precisamos para saber o controle contém informações válidas ou não.

 

protected void ValidaCheckBox(object sender, ServerValidateEventArgs args)

{

    args.IsValid = true;

    if (CheckBoxList1.SelectedIndex == -1)

    {

        args.IsValid = false;

    }

}

Listagem 03 – Método ValidaCheckBox

 

Vamos comentar esse método. O método tem 2 parâmetros. O Primeiro do tipo object que contém a informação do objeto que dispara o evento e o segundo do tipo ServerValidateEventArgs. Esse segundo objeto contém um propriedade “booleana” chamada IsValid, que nos utilizamos para informar se a validação ocorreu com sucesso ou não.

 

Começamos o método informando que a propriedade é True. Se o CheckBoxList1 retorna a propriedade SelectedIndex == -1, isso significa que nenhuma opção foi selecionada, pois esse propriedade retorna o índice (começando de zero) da primeira opção seleciona pelo usuário no CheckBoxList. Então se acontecer dessa propriedade retornar -1, nós invalidamos o controle atribuindo o valor False a propriedade IsValid.

 

Quando o framework .Net detecta essa “falha”, o mesmo procede com o tratamento normal igual ao demais controles validators, invalidando a página.

 

dsscucvcp1fig01.jpg 

Figura 01 – Controle checkBox com informações inválidas

 

dsscucvcp1fig02.jpg 

Figura 02 – Controle checkBox com informações válidas

 

Pessoal, ficamos por aqui hoje, na próximo artigos vamos aprender a validar mais de um checkboxlist por página

 

Até a próxima.

Daniel Cazé

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?