DaniloTec 0 Denunciar post Postado Agosto 18, 2010 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
quintelab 91 Denunciar post Postado Agosto 18, 2010 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
DaniloTec 0 Denunciar post Postado Agosto 18, 2010 Isso não dá certo. Se eu selecionar mais de 2 valores ele retorna o primeiro do mesmo jeito. Compartilhar este post Link para o post Compartilhar em outros sites
rockysp 0 Denunciar post Postado Agosto 18, 2010 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
DaniloTec 0 Denunciar post Postado Agosto 18, 2010 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
rockysp 0 Denunciar post Postado Agosto 18, 2010 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
DaniloTec 0 Denunciar post Postado Agosto 18, 2010 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