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
<rich:dataTable com colunas dinâmica
4 Respostas
ta respondido a sua duvida no post q vc citou
é so adicionar todas as colunas q v precisa com um binding
[quote]
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,
[quote=guimoz]ta respondido a sua duvida no post q vc citou
é so adicionar todas as colunas q v precisa com um binding
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 !
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!?
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?