<rich:dataTable com colunas dinâmica

4 respostas
klayrocha

Então galera, estou ficando desesperado, estou com o projeto para entregar ontem e não estou conseguindo fazer um <rich:dataTable com colunas dinâmicas. Eu até consigo colocar as colunas dinâmicas, mas tenho problemas com o valor.
Esse exemplo abaixa ta dando erro e não está bem explicado ! Alguém poderia me dar uma ajuda ae ???
http://www.guj.com.br/posts/list/35282.java

4 Respostas

G

ta respondido a sua duvida no post q vc citou

é so adicionar todas as colunas q v precisa com um binding

[quote]

maurenginaldo:
Oi pessoal, tive esse problema há tempos atrás, ralei a beça mais consegui resolver.
tem como vcs fazerem assim:

<rich:dataTable value="#{bean.dataModelList}" var="linha"> <f:facet name="header"> <rich:columnGroup> <c:forEach var="coluna" items="#{bean.listaColunas}"> <h:outputText value="#{coluna.label}"/> </c:forEach> </rich:columnGroup> </f:facet> <!-- Coloque aqui seus valores baseado no objeto linha --> </rich:dataTable>

Porém, o problema vai aparecer quando vcs forem colocar o valor do objeto, baseado em cada atributo dele.
Fiz uma implementação igual a de cima, porém no componente rich:columnGroup eu criei um binding e fiz ele no java, ficando bem mais facil, mais ou menos assim:

<rich:dataTable value="#{bean.dataModelList}" var="linha"> <f:facet name="header"> <rich:columnGroup binding="#{bean.colunasLabel}"> </f:facet> <rich:columnGroup binding="#{bean.colunasValor}"> </rich:dataTable>

Assim, a tabela ficou totalmente dinâmica.
Recomendo a segunda opção.

Qualquer dúvida postem aí.
Abraços,

klayrocha

[quote=guimoz]ta respondido a sua duvida no post q vc citou

é so adicionar todas as colunas q v precisa com um binding

maurenginaldo:
Oi pessoal, tive esse problema há tempos atrás, ralei a beça mais consegui resolver.
tem como vcs fazerem assim:

<rich:dataTable value="#{bean.dataModelList}" var="linha"> <f:facet name="header"> <rich:columnGroup> <c:forEach var="coluna" items="#{bean.listaColunas}"> <h:outputText value="#{coluna.label}"/> </c:forEach> </rich:columnGroup> </f:facet> <!-- Coloque aqui seus valores baseado no objeto linha --> </rich:dataTable>

Porém, o problema vai aparecer quando vcs forem colocar o valor do objeto, baseado em cada atributo dele.
Fiz uma implementação igual a de cima, porém no componente rich:columnGroup eu criei um binding e fiz ele no java, ficando bem mais facil, mais ou menos assim:

<rich:dataTable value="#{bean.dataModelList}" var="linha"> <f:facet name="header"> <rich:columnGroup binding="#{bean.colunasLabel}"> </f:facet> <rich:columnGroup binding="#{bean.colunasValor}"> </rich:dataTable>

Assim, a tabela ficou totalmente dinâmica.
Recomendo a segunda opção.

Qualquer dúvida postem aí.
Abraços,


Qual a parte do “não está bem explicado” que você não entendeu ?
Esse tópico eu já tinha visto !!!
O lance é que não consegui implementar o que ele apresentou !

J

cara porque você não constrói tudo dinâmico, é tão simples.
Faça apenas isso :

<rich:dataTable binding="#{bean.dataTable}" />

e dentro do seu bean, você contrói toda a tabela, todas suas colunas e todos valores que desejar pra elas. Entendeu!?

I

cara eu tow com esse mesmo problema!!

já tentei de tudo que é jeito!!!

consigo até montar a dataTable para jogar no binding , mas ela só aparece na página depois de um refresh!!

alguém tem alguma idéia?

Criado 16 de abril de 2009
Ultima resposta 9 de jun. de 2009
Respostas 4
Participantes 4