[CEJUG] Dialog Primefaces com Datatable

25 views
Skip to first unread message

Francisco Everton R. de Sousa

unread,
Aug 24, 2016, 8:01:54 PM8/24/16
to ce...@googlegroups.com
Boa noite galera..

Estou com um problema e precisa ajuda de vcs..eu estou montando uma datatable com diversas informações..simples..o que está me tirando a paciência é o seguinte:

Uma das colunas deverá ser utilizada como valor de um parametro de um método para executar uma consulta q será exibida no dialog...como fazer isso? ja tentei de diversas vezes e nada.

F. Everton

Marcus Mazzo Laprano

unread,
Aug 24, 2016, 8:18:45 PM8/24/16
to ce...@googlegroups.com
Seguinte... vc tem, linha a linha, um objeto. Ao executar o dialog (clicando em um botão, ou na linha, etc) vc deve setar esse objeto. Utilize o f:setPropertyActionListener para atribuir o objeto da linha dentro do seu objeto no bean. Ao terminar (oncomplete) vc irá exibir o dialog e irá renderizar o dialog novamente. Dessa forma vc terá o objeto e poderá utilizar o valor dessa coluna de acordo com o que precisar exemplo:

<p:datatable ...>
<p:column value="...">
<p:ajax event="onclick" update="dialog" oncomplete="dialog.show()">
<f:setpropertyactionlistener target="meuBean.objeto" value="objeto">
...
<p:dialog>
<h:outputtext value="meuBean.objeto.valorColuna">
...

Da forma como esta acima vai dar erro pq não to usando IDE mas a ideia seria basicamente essa... não sei se entendi direito o que vc queria fazer... qualquer coisa explica um pouco melhor... 

Marcus Mazzo Laprano
Analista / Desenvolvedor Java
http://www.marcusmazzo.com.br

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.

Francisco Everton R. de Sousa

unread,
Aug 24, 2016, 8:28:01 PM8/24/16
to ce...@googlegroups.com
Eu entendi Marcus, mas minha duvida é como eu pego o valor de uma coluna especifica pra usar como valor de parâmetro de método entendeu? Por exemplo: coluna1, coluna2, coluna3 e o método deve receber como parametro o valor da coluna3.


Marcus Mazzo Laprano

unread,
Aug 24, 2016, 9:00:39 PM8/24/16
to ce...@googlegroups.com
Segue o mesmo principio...

por exemplo


<p:column value="#{objeto.coluna1}">
<p:column value="#{objeto.coluna2}">
<p:column value="#{objeto.coluna3}">

pra vc pegar o valor é "#{objeto.coluna3}". 
Qnd vc clicar em alguma coisa (linha, coluna, botão, link, etc) vc vai chamar uma action no teu bean e o parametro seria o da coluna 3 tipo


<p:commandButton action="#{meuBean.meuMetodo(objeto.coluna3)}">

Mas como te falei, a forma mais segura é vc setar o objeto inteiro via propertyListener e o teu método não iria receber parametro algum, iria ficar tipo
<p:commandButton action="#{meuBean.meuMetodo}">
<F:setPropertyActionListener target="#{meuBean.objeto}" value="#{objeto}">

e no teu bean teria um metodo tipo

public String /void meuMetodo(){
objeto.getColuna3(); ...


Algo dessa forma.

Pra pegar o valor dentro de uma table basta fazer o mesmo que vc faz pra exibir o valor na coluna. 




Marcus Mazzo Laprano
Analista / Desenvolvedor Java
http://www.marcusmazzo.com.br

Francisco Everton R. de Sousa

unread,
Aug 24, 2016, 9:44:19 PM8/24/16
to ce...@googlegroups.com
Marcus, eu fiz da forma que você disse da primeira vez e deu certo. Muito obrigado de verdade.
Reply all
Reply to author
Forward
0 new messages