[Problema Checkbox em um dataTable] JSF

8 respostas
eullerbd

Pessoal criei um

<h:selectManyCheckbox id="tabela" value="#{dados.itensSelecionados}" > <f:selectItem itemValue="#{name.id}" itemLabel="#{name.id}"/> </h:selectManyCheckbox>

No meu bean eu tenho um List itensSelecionados, responsável por setar e recuperar os checkbox selecionados.

Mas ele só me retorna no bean o valor selecionado, quando eu marco o ultimo checkbox gerado no meu dataTable :?

Alguém ja passou por isso?Obrigado

8 Respostas

maurenginaldo

Parece que seu código está com erro.
No seu select vc só tem um valor: <f:selectItem …
Nesse caso vc tem que utilizar vários <f:selectItem ou um <f:selectItems />

eullerbd

maurenginaldo, o código está certinho, os checkbox sao gerados dinamicamente

vou postar abaixo o código de meu dataTable, veja se pode me ajudar

<h:dataTable id="tabela" styleClass="tableList" border="1" value="#{dados.listaDePlano}" var="name">
                                            
                                            <h:column>
                                                <f:facet name="header">
                                                    <h:outputText value="ID"></h:outputText> 
                                                </f:facet>
                                               
                                               <h:selectManyCheckbox id="tabela"  value="#{dados.itensSelecionados}"  >
                                                   <f:selectItem  itemValue="#{name.id}" itemLabel="#{name.id}"/>
                                               </h:selectManyCheckbox>    
                                            </h:column>
                                            
                                            <h:column>
                                                <f:facet name="header">
                                                    <h:outputText value="Nome"></h:outputText> 
                                                </f:facet>
                                              <h:outputText value="#{name.nome}"/>  
                                            </h:column>
                                            
                                            <h:column>
                                                <f:facet name="header">
                                                    <h:outputText value="Valor"></h:outputText> 
                                                </f:facet>
                                                <h:outputText value="#{name.valor}">
                                                    <f:convertNumber type="currency"/>
                                                </h:outputText>
                                            </h:column>
                                            
                                            
                                        </h:dataTable>
maurenginaldo

eullerbd:
<h:selectManyCheckbox id=“tabela” value="#{dados.itensSelecionados}" >
<f:selectItem itemValue="#{name.id}" itemLabel="#{name.id}"/>
</h:selectManyCheckbox>
[/code]

Por que vc tem um selectMany com um item só?

eullerbd

maurenginaldo O resultado que quero é este da figura abaixo:

O que quero fazer, a cada iteração do meu dataTable ele gere o checkbox correspondente , com o código do plano.

maurenginaldo

Utilize o componente

<h:selectBooleanCheckbox

eullerbd

Mas pelo que estudei o <h:selectBooleanCheckbox> so me retorna um valor selecionado certo?

utilizo <h:selectManyCheckbox> pq um ou mais valores podem ser selecionados.

maurenginaldo

eullerbd:
Mas pelo que estudei o <h:selectBooleanCheckbox> so me retorna um valor selecionado certo?

utilizo <h:selectManyCheckbox> pq um ou mais valores podem ser selecionados.

Pois é, vc está correto.

Porém vc está utilizando o <h:selectManyCheckbox> dentro de uma tabela, onde a cada iteração (linha da tabela) ele cria um novo <h:selectManyCheckbox> sempre com um item só. Por isso sugeri o <h:selectBooleanCheckbox> que serve para trabalhar com um item somente e retorna true ou false dependendo de sua seleção.

W

Opa eullerbd,
Voce encontrou alguma solução para esse problema?

Criado 29 de maio de 2008
Ultima resposta 25 de nov. de 2010
Respostas 8
Participantes 3