E então pessoal peguei esse codigo no site do primefaces do data table:
<p:fieldset legend="Dados do cliente">
<p:dataTable id="availableCars" var="car" value="#{}">
<p:column style="width:20px">
<h:outputText id="dragIcon"
styleClass="ui-icon ui-icon-arrow-4" />
<p:draggable for="dragIcon" revert="true" />
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{Cliente.nomeCliente}" />
</p:column>
<p:column headerText="Idade">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Cpf">
<h:outputText value="#{car.manufacturer}" />
</p:column>
<p:column headerText="RG">
<h:outputText value="#{car.color}" />
</p:column>
</p:dataTable>
queria saber como fazer pra ele listar os dados, ja tenho um metodo que lista.
duvidas onde coloco meu metodo listar? o q tenho q alterar ai
[quote=adam_sandler]E então pessoal peguei esse codigo no site do primefaces do data table:
<p:fieldset legend="Dados do cliente">
<p:dataTable id="availableCars" var="car" value="#{}">
<p:column style="width:20px">
<h:outputText id="dragIcon"
styleClass="ui-icon ui-icon-arrow-4" />
<p:draggable for="dragIcon" revert="true" />
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{Cliente.nomeCliente}" />
</p:column>
<p:column headerText="Idade">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Cpf">
<h:outputText value="#{car.manufacturer}" />
</p:column>
<p:column headerText="RG">
<h:outputText value="#{car.color}" />
</p:column>
</p:dataTable>
queria saber como fazer pra ele listar os dados, ja tenho um metodo que lista.
duvidas onde coloco meu metodo listar? o q tenho q alterar ai[/quote]
tens q preencher o value do dataTable. Ele tem q ser um bean q implemente serializable . A variável poderá ser um List (ArrayList).
<p:dataTable var="car" value="#{seuBean.VarListl}">
<p:column headerText="Model">
<h:outputText value="#{car.model}" />
</p:column>
</p:dataTable>
deu certo man, como faço para listar os contatos de clientes, sabendo que em Cliente tem uma lista de contatos…
Tentei var.contatos.celContato
mas da erro.
me ajuda?
hum … .tente criar uma datatable dentro da datatable.
nao entendi, meu datatable funciona quando uso a var = cli
cli.nomeCliente
mas agora quero carregar a lista de contatos.
eu tenho uma lista de contatos ja no BD, ela esta reiacionada com cliente, como faço?
tente fazer o seguinte :
em vez de h:outputText
<p:column headerText=“Nome”>
<h:outputText value="#{Cliente.nomeCliente}" />
</p:column>
coloque outro (no lugar do outputtext ) datatable com o value para contatos (cliente.contatos)
dentro desse 2° datatable coloque os campos do contato no value (cliente.contato.nome; cliente.contato.endereco ,etc) .
Aqui tem um exemplo completo: http://uaihebert.com/?p=1414
[quote=alexmonassa]tente fazer o seguinte :
em vez de h:outputText
<p:column headerText=“Nome”>
<h:outputText value="#{Cliente.nomeCliente}" />
</p:column>
coloque outro (no lugar do outputtext ) datatable com o value para contatos (cliente.contatos)
dentro desse 2° datatable coloque os campos do contato no value (cliente.contato.nome; cliente.contato.endereco ,etc) . [/quote]
não entendi, veja minha tabela completa:
<p:fieldset legend="Dados do cliente">
<p:dataTable id="availableCars" var="cli" value="#{ClienteController.listarCliente}">
<p:column style="width:20px">
<h:outputText id="dragIcon"
styleClass="ui-icon ui-icon-arrow-4" />
<p:draggable for="dragIcon" revert="true" />
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{cli.nomeCliente}" />
</p:column>
<p:column headerText="Renda">
<h:outputText value="#{cli.rendaCliente}" />
</p:column>
<p:column headerText="Cpf">
<h:outputText value="#{cli.cpfCliente}" />
</p:column>
<p:column headerText="RG">
<h:outputText value="#{cli.rgCliente}" />
</p:column>
</p:dataTable>
</p:fieldset>
apenas quero listar os dados contato agora, o mesmo são uma lista de cliente.
Cara, tem diversas maneiras.
Você pode colocar um p:rowExpansion na sua data table:
<p:dataTable id="tabelaClientes" var="cli" value="#{ClienteController.listarCliente}">
<p:column style="width:2%">
<p:rowToggler />
</p:column>
....suas colunas
<p:rowExpansion>
<p:dataList id=listaContatos" value="#{cli.contatos}" var="contato">
<h:outputText value="#{contato.atributo1}" />
</p:dataList>
</p:rowExpansion>
</p:dataTable>
Você pode também colocar uma coluna com um botão/link/whatever para mostrar os contatos:
[code]
<p:dataTable id=“tabelaClientes” var=“cliente” value="#{ClienteController.listarCliente}">
…suas colunas…
<p:column >
<p:commandLink update=":contatosForm" onclick=“dialogContato.show();” rendered="#{not empty cliente.contatos}">
<h:outputText value=“Ver Contatos” />
<f:setPropertyActionListener target="#{ClienteController.clienteSelecionado}" value="#{cliente}" /> //não esqueça do get/set pra clienteSelecionado no seu Controller.
</p:commandLink>
</p:column>
</p:dataTable>
<p:dialog header=“Contatos” id=“dialogContatoID” widgetVar=“dialogContato” modal=“true” draggable=“false” resizable=“false” >
<h:form id=“contatosForm”>
<p:dataList id=listaContatos" value="#{ClienteController.clienteSelecionado.contatos}" var=“contato”>
<h:outputText value="#{contato.atributo1}" />
</p:dataList>
</h:form>
</p:dialog>[/code]
Pode criar um treetable, exibir os cotatos em uma linha normal e por ai vai…
Veja a que fica melhor para o usuário e não fique pesada no sistema.
tava lendo ainda o artigo q o Herbert mandou ainda nao terminei.
Bem tenta assim
<p:column>
<p:dataTable
value="#{cli.contatos}"
var=“conts”>
<p:column>#{conts.name}</p:column>
</p:dataTable>
</p:column>
O resto normal .
qq coisa avisa ai.
[quote=ErickRAR]Cara, tem diversas maneiras.
Você pode colocar um p:rowExpansion na sua data table:
<p:dataTable id="tabelaClientes" var="cli" value="#{ClienteController.listarCliente}">
<p:column style="width:2%">
<p:rowToggler />
</p:column>
....suas colunas
<p:rowExpansion>
<p:dataList id=listaContatos" value="#{cli.contatos}" var="contato">
<h:outputText value="#{contato.atributo1}" />
</p:dataList>
</p:rowExpansion>
</p:dataTable>
.[/quote]
nao entendi, em qual coluna vai se alocar? quero q em uma coluna especifica liste contatos.
ex:
<p:column headerText=“Celular”>
<h:outputText value="#{cli.contatos.celContato}" />
</p:column>
nessa coluna ai, quero colocar o cel do contato. mas se colocar assim da esse erro:
For input string: “celContato”
como aplicar o <p:rowExpansion> na coluna?
no exemplo q vc disse fica fora das colunas, eu fiz e nada ocorre.
Ainda nao entendi, isso é outra tabela diferente, tenho que usar ela? se sim, ainda nao entendi como listar a lista.
Mas eu quero usar a tabela que ja estou usando e nao esta.