Ajuda com SelectManyCheckBox

Galera,

estou tentando pegar os valores de vários checkbox em uma tabela. Já tentei de várias formas e nada.

Tentei fazer um binding mas o mesmo vem null.

Se alguém puder me ajudar.

Segue os códigos:

[code]<t:dataTable id=“classeUsoTable” summary="#{i18n[‘br.com.petrobras.crud.datatable.summary’]}"
first="#{classeUsoManagedBean.classeUsoJsfPagination.firstItemIndex}"
rows="#{classeUsoManagedBean.classeUsoJsfPagination.pageSize}"
sortColumn="#{classeUsoManagedBean.classeUsoJsfPagination.sortByField}"
sortAscending="#{classeUsoManagedBean.classeUsoJsfPagination.sortAscending}"
value="#{classeUsoManagedBean.classeUsoDataModel}"
rowOnMouseOver=“this.style.backgroundColor=’#F1F1F1’”
rowOnMouseOut=“this.style.backgroundColor=’#E1E0E0’”
headerClass=“bgTabela01”
rowClasses=“bgTabela02”
newspaperColumns=“1”
newspaperOrientation=“horizontal”
cellpadding=“3” cellspacing=“1”
columnClasses=“colunaCheckBoxClasseUso, colunaCodigoClasseUso, colunaDescricaoClasseUso”
width=“100%”
var=“classeUso”
binding="#{classeUsoManagedBean.dataTable}"
renderedIfEmpty=“false”>

						<h:column>	   		 					   				
				   				<t:selectManyCheckbox id="identificador"  binding="#{classeUsoManagedBean.codigo}" value="#{classeUsoManagedBean.teste}">
					   				<f:selectItem itemValue="#{classeUso.id}" itemLabel="" itemDisabled="#{not classeUsoManagedBean.desabilitaBotao}"/>
				   					
				   				</t:selectManyCheckbox>	
				   						
					    </h:column>
					
        [/code]

[code] private HtmlSelectManyCheckbox codigo;

private Integer[] teste;[/code]

Quando eu faço um Debug e tento visualizar os dados, vem todos como null ou vazio.

[code]public final String processDelete() {

	System.out.println(codigo.getSelectedValues());
	System.out.println(teste);
	return processSearch();
}[/code]

Abs
Alexandre

Tenta fazer uma função javascript pra pegar o valor do teu t:selectManyCheckbox. Só não lembro se o value retorna int[] ou String[], mas eu acho que é um String[] com os checkbox selecionados.

acho que fica algo assim:

var selecionados = document.getElementById(“identificador”).value;

DuduCordeiro,

na minha solução não pode ter JavaScript. Não teria como fazer isso apenas usado os componentes e o MB???

VLW

Tenta usar ou só o binding ou só o value, não os dois ao mesmo tempo. E depois com o binding coloca um breakPoint no teu método setCodigo(HtmlSelectManyCheckbox codigo){…} e abre a variavel código pra ver se os valores que vc quer estão lá dentro. Se não der certo tenta com o value no teu componente e na tua classe controladora, tenta fazer um cast pra String[] ao invés de int[]. Depois diz ai o resultado dos testes.

duduCordeiro,

Coloquei um breakpoint no set e vi que o valor estava chegando mas não estava sendo salvo. Coloquei um List para salvar e funcionou. Muito obrigado cara.

Vincule uma value do tipo ArrayList à selectManyCheckBox

Conforme vc for selecionando, as Strings das ItemValue serão adicionadas à ArrayList

Espero ter ajudado!