PrimeFaces selectManyCheckbox

13 respostas
D

pessoal estou com uma zica aki, estou tentando usar o componente p:selectManyCheckBox
so que eu tenho 20 opções nele, e ele não pula linha, ou fica tudo na horizontal ou na vertical
eu queria que ele pulasse linha a cada 5 ou 10

<p:selectManyCheckbox value="#{usuarioManager.privilegios}">  
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
	<f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" />  
	<f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" />
</p:selectManyCheckbox>

13 Respostas

K

cara, tu já tentou usar um layout? Eu sou novo tb no java, mas lembro de ter feito um layout que ficou um abaixo do outro. Será que
entre cada um não funciona?

P
&lt;p:selectManyCheckbox value="#{usuarioManager.privilegios}"&gt;    
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
&lt;/p:selectManyCheckbox&gt;
<br/><br/>
&lt;p:selectManyCheckbox value="#{usuarioManager.privilegios}"&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
&lt;/p:selectManyCheckbox&gt;
<br/><br/>
&lt;p:selectManyCheckbox value="#{usuarioManager.privilegios}"&gt;    
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt; 
&lt;/p:selectManyCheckbox&gt;
<br/><br/>
&lt;p:selectManyCheckbox value="#{usuarioManager.privilegios}"&gt;       
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
        &lt;f:selectItem itemLabel="Cadastrar Usuário" itemValue="ROLE_USUARIO" /&gt;    
        &lt;f:selectItem itemLabel="Pesquisar Usuário" itemValue="ROLE_USUARIO_PESQUISAR" /&gt;  
    &lt;/p:selectManyCheckbox&gt;

acho q assim funciona, MAS deve existir uma maneira mais elegante e inteligente de ter o mesmo efeito.

att,

D

kmunga eu usei os 2 layout mas não consegui fazer da maneira que preciso

pedruhenrik eu tentei dessa forma, mas só os últimos valores entram na lista

mais alguma ajuda?

R

Já pensou em fazer um dataTable com selectionMode=“multiple” ?

Segue link do showcase: http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf

P

Rodrigo Sasaki:
Já pensou em fazer um dataTable com selectionMode=“multiple” ?

Segue link do showcase: http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf

não!
mas isso realmente vai me ajudar!
hahahah

obrigado

att

D

No meu caso não vai dar certo, por que eu vou precisar de 5 checkbox em cada linha, mas
quando seleciona qualquer um desses checks em uma determinada linha ele pega o valor da
linha inteira

R

didobruno:
No meu caso não vai dar certo, por que eu vou precisar de 5 checkbox em cada linha, mas
quando seleciona qualquer um desses checks em uma determinada linha ele pega o valor da
linha inteira

Ué, qual o problema? Deixe a tabela limitada para 5 linhas, se o usuário quiser ele navega pela tabela.

Se não fizer isso você vai ter 2 opções.

1 - Ou você deixa os campos direto na tela, e controla um por um, e vai mantendo caso precise adicionar/remover campos.

2 - Você faz algo parecido com o que o pedruhenrik disse, mas vai ter que ter duas listas para cada coluna, uma para as opções e outra para os selecionados, aí você junta na mão para persistir, e no retorno quebra na mão também, para mostrar na tela.

D

Eu preciso de algo mais ou menos assim oh:

[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção
[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção
[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção
[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção
[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção
[ ] Opção [ ] Opção [ ] Opção [ ] Opção [ ] Opção

R

Repito minha resposta anterior :slight_smile:

D

Eh, caso eu não consiga fazer esse componente pular de linha
eu vou ter q fazer na mão mesmo

D

acabei fazendo manualmente mesmo, funcionou de boa

vlw pessoal

P

Rodrigo Sasaki:
Já pensou em fazer um dataTable com selectionMode=“multiple” ?

Segue link do showcase: http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf

poxa não estou conseguindo implementar com primefaces 2.2.1 =/
parece que a interface SelectableDataModel não existe

alguém sabe se é possível usar esse tipo de datatable com a versão 2.2.1 do prime?

att,

N

Pelo que vi a funcionalidade das colunas está prevista para versões futuras…
Mas encontrei esta solução nas issues do prime.
Usei aqui e funcionou perfeitamente.

https://code.google.com/p/primefaces/issues/detail?id=4549&can=4&colspec=ID%20Stars%20Type%20Status%20Priority%20TargetVersion%20Reporter%20Owner%20Summary#makechanges

Criado 30 de novembro de 2012
Ultima resposta 19 de set. de 2013
Respostas 13
Participantes 5