Colunas dinâmicas com PrimeFaces

3 respostas
C

Boa tarde,

Estou com problema para fazer as colunas de uma tabela renderizar ou não. Tenho checkbox para cada uma das colunas da table, quando eu desmarcar o checkbox referente a coluna, ela nao vai mais aparecer. ex: desmarco o checkbox nome, ai a coluna nome nao vai mais aparece na tabela. XHTML:
<p:dataTable  id="cars" var="car" value="#{renderizarBean.carsSmall}">  
		        <p:column id="modelHeader">  
		            <f:facet name="header">Model</f:facet>  
		            <h:outputText value="#{car.model}" />  
		        </p:column>  
		  
		        <p:column>  
		            <f:facet name="header">Year</f:facet>  
		            <h:outputText value="#{car.year}"/>  
		        </p:column>  
		  
		        <p:column>  
		            <f:facet name="header">Manufacturer</f:facet>  
		            <h:outputText value="#{car.manufacturer}" />  
		        </p:column>  
		  
		        <p:column>  
		            <f:facet name="header">Color</f:facet>  
		            <h:outputText value="#{car.color}" />  
		        </p:column>  
		    </p:dataTable>  
		    
		    <br/><br/><br/>
		    <h:outputText value="Colunas: " />
	        <p:selectCheckboxMenu value="#{renderizarBean.selectedColunas}" label="Colunas">  
		        <f:selectItems value="#{renderizarBean.colunas}" />
		    </p:selectCheckboxMenu>
Bean:
private List<String> selectedColunas;
    private Map<String,String> colunas;

Estou fazendo assim mas nao esta funcionando. Alguém tem uma ideia de como poderia ser feito isso?

3 Respostas

R

sua coluna tem que ter uma condição para mostrar ou não…

ex:

<p:column rendered="#{seuBean.valor eq 0}" [só vai mostrar a coluna se no seuBean a variável valor for = 0]

ai quando você colocar o checkbox, dispare um evento ajax para dar update na sua tabela.

C

Consegui, era isso mesmo.

Obrigado

R

de nada!

altera o título do tópico e coloca um [resolvido] na frente para facilitar para os outros!

bom fim de semana.

Criado 20 de abril de 2012
Ultima resposta 20 de abr. de 2012
Respostas 3
Participantes 2