Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DaniloTec

[Resolvido] Pegar valor do checkboxlist selecionado

Recommended Posts

Bom dia.

 

Tenho um CheckBoxList populado e não sei como faço pra pegar o valor que foi selcionado. E não quero pegar todos os valores selecionados, eu quero pegar o valor que foi selecionado na hora do click.

 

Os CheckBoxList1.SelectedValue e CheckBoxList1.SelectedItem.value não funcionam. Quanto eu seleciono o primeiro registro da lista ele me retorna o valor correto, porém, quando eu seleciono o segunto ele me retorna o valor do primeiro ainda.

 

Eu preciso pegar o valor do item que foi selecionado e não todos que estão selecionado.

 

Eu resolvi isso com Javascript, porém gostaria de uma solução C#.

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto seria verificar item a item, pelo indice.

 

bool primeiroSelecionado = CheckBoxList1.Items[0].Selected;

bool segundoSelecionado = CheckBoxList1.Items[1].Selected;

Para pegar todos pode fazer um for.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não dá certo. Se eu selecionar mais de 2 valores ele retorna o primeiro do mesmo jeito.

 

 

DaniloTec,

 

Do jeito que o quintelab escreveu dá certo sim, talvez você não tenha notado uma pequena diferença do código que você escreveu para o dele, veja:

 

Você escreveu:

CheckBoxList1.SelectedValue e CheckBoxList1.SelectedItem.value

quintelab escreveu:

bool primeiroSelecionado = CheckBoxList1.Items[0].Selected;
bool segundoSelecionado = CheckBoxList1.Items[1].Selected;

Veja que a diferença está no na palavra Items[ ]. Do jeito que você fez inicialmente realmente, você pode checar todos os itens que ele retornará somente o primeiro e para retornar todos os checados você precisa percorrer todos os itens do CheckBoxList através de um for e verificar um a um se está checado ou não.

 

Assim:

for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
    if (CheckBoxList1.Items[i].Selected)
    {
        //Recupera o valor através do CheckBoxList1.Items[i].Value;
    }
}

 

 

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vocês ainda não entederam. Eu só quero pegar o valor do checkbox que eu clicar. Mesmo que já existam outros checados eu só quero pegar o que eu checkei na hora do click. Eu não quero a lista toda, eu só quero o que eu cliquei na hora, mesmo que já existam outros checados.

Desse jeito ele me retorna a lista de checados e não é isso que eu quero, quero só o que eu cliquei.

 

Guys, encontrei exatamente o que eu precisava.

 

Clique aqui

 

Vlw!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe me intrometer na sua lógica, mas não teria sido mais fácil usar um CheckBox ao invés de um CheckBoxList? Daí você capturaria pelo evento CheckedChanged.

 

Só pra entender, pq realmente não tinha entendido anteriormente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso daria certo também, mas acredito que seria trocar 6 por meia dúzia.

Se eu colocasse um CheckBox eu teria que colocar ele dentro de um laço, construir os controles, atribuir os valores e adicioná-los a um Panel.

Acho que dá no mesmo, mas de qualquer forma, encontrei outra forma de se fazer as coisas. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.