Atualizar dialog com dado do datatable primefaces 3

15 respostas
W

E ai gente. Estou tendo problemas com meu dialog… Ele abre, mas nao aparece as informações dos campos…
Não sei por que, esta igual ao exemplo do single row select do prime [[color=blue]http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf[/color]]

alguma ideia?

WEB:

<h:form id="frmCmhAberto">
                <p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px">
                    <f:facet name="header">CHAMADOS EM ABERTO</f:facet>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="ID" />
                        </f:facet>
                        <h:outputText value="#{varChamado.id}" />
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="NÚMERO" />
                        </f:facet>
                        <h:outputText value="#{varChamado.numero}" />
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="IDENTIFICAÇÃO" />
                        </f:facet>
                        <h:outputText value="#{varChamado.identificacao}" />
                    </p:column>
                    <p:column style="width: 50px">
                        <f:facet name="header">
                            <h:outputText value="ABRIR" />
                        </f:facet>
                        <p:commandButton update=":frmCmhAberto:formCmh" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir">  
                            <f:setPropertyActionListener value="#{verChamado}" target="#{chamadoBean.chamadoSelecionado}" />  
                        </p:commandButton>
                    </p:column>
                </p:dataTable>
                <p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px">
                    <h:panelGrid columns="2" id="formCmh">
                        <h:outputText value="ID: "/>
                        <h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/>
                        <h:outputText value="NÚMERO: "/>
                        <h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/>
                        <h:outputText value="IDENTIFICAÇÃO: "/>
                        <h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/>
                    </h:panelGrid>
                </p:dialog>
            </h:form>

Bean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;

/**
 *
 * @author pedro.fechener
 */
@ManagedBean
public class ChamadoBean {

    private List<Chamado> chamadoList;
    private Chamado chamadoSelecionado;

    public ChamadoBean() {
        chamadoList = new ArrayList<Chamado>();
        chamadoList.add(new Chamado(1L, "Chamado 1", "1º TESTE"));
        chamadoList.add(new Chamado(2L, "Chamado 2", "teste 2"));
        chamadoList.add(new Chamado(3L, "Chamado 3", "outro teste"));
    }

    public List<Chamado> getChamadoList() {
        return chamadoList;
    }

    public void setChamadoList(List<Chamado> chamadoList) {
        this.chamadoList = chamadoList;
    }

    public Chamado getChamadoSelecionado() {
        return chamadoSelecionado;
    }
}

Chamado

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

/**
 *
 * @author pedro.fechener
 */
public class Chamado {
    private long id;
    private String numero;
    private String identificacao;

    public Chamado(long id, String numero, String identificacao) {
        this.id = id;
        this.numero = numero;
        this.identificacao = identificacao;
    }
    
    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the numero
     */
    public String getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(String numero) {
        this.numero = numero;
    }

    /**
     * @return the identificacao
     */
    public String getIdentificacao() {
        return identificacao;
    }

    /**
     * @param identificacao the identificacao to set
     */
    public void setIdentificacao(String identificacao) {
        this.identificacao = identificacao;
    }
    
    
}

Tela:

https://plus.google.com/u/0/photos/107785778487463664105/albums/5699657508887862465

15 Respostas

otaviojava

no seu commandbutton dá um update no “formCmh”

W

ué, mas isso está sendo feito

update=":frmCmhAberto:formCmh"
otaviojava

waksman:
ué, mas isso está sendo feito

update=":frmCmhAberto:formCmh"


Estranho, tenta dessa forma.

update="formCmh"
W

tentei tirar o outro forme deixar somente o [color=blue]formCmh[/color] como falou, mas nao mudou nada :frowning:

ali na linha 27 da pagina estava escrito [color=red][value="#{verChamado}"][/color] em vez de [color=blue][value="#{varChamado}"][/color]. Corrigi, porem não mudou nada

Diego_Adriano

Tente usar em um Form diferente.

<p:column headerText="Ações" style="width:50px;">
                <p:commandButton oncomplete="planoDialog.show()" update="altPlno" image="ui-icon-pencil">
				<f:setPropertyActionListener target="#{planoBean.planoSelecionado}" value="#{planos}"/>
		</p:commandButton>
</p:column>
<p:dialog widgetVar="planoDialog" resizable="false"
						  width="500" showEffect="explode" modal="true" position="center" closeOnEscape="true" closable="true">
					
					<h:form id="altPlno" prependId="true">
					
						<h:panelGrid columns="2" columnClasses="colunaEsquerda,colunaDireita">
							
							<h:outputText value="ID : "/>
							<h:outputText value="#{planoBean.planoSelecionado.id}"/>
							
							<h:outputText value="Nome : "/>
							<p:inputText value="#{planoBean.planoSelecionado.nome}"
										 size="30"
										 required="true"
										 onkeydown="this.value = this.value.toUpperCase();"/>
							
							<h:outputText value="Descrição : "/>
							<p:inputText value="#{planoBean.planoSelecionado.descricao}"
										 size="30"
										 required="true"
										 onkeydown="this.value = this.value.toUpperCase();"/>
							
							<h:outputText value="Dias : "/>
							<p:inputText value="#{planoBean.planoSelecionado.dias}"
										 size="4"
										 required="true"/>			 
							
							<h:outputText value="Valor : "/>			
 							<p:inputText 
 										required="true"
 										value="#{planoBean.planoSelecionado.preco}" 
 										size="10">
								<!-- <f:convertNumber minFractionDigits="2" maxFractionDigits="2" minIntegerDigits="1" />-->
								<f:convertNumber currencySymbol="R$" type="currency" />
							</p:inputText>
							
							<br/>
																		
							<f:facet name="footer">
								<p:commandButton value="Salvar"   update="tabela_P" actionListener="#{planoBean.alterar}" ajax="false" oncomplete="planoDialog.hide()"
												 image="ui-icon-check"/>
								<p:commandButton value="Cancelar" actionListener="#{planoBean.limpaFormulario}" onclick="planoDialog.hide()"
												 image="ui-icon-close" type="button"/>
							</f:facet>
							
							
						</h:panelGrid>
					
					</h:form>	  
						  
				</p:dialog>
W

Não deu :(. Se entendi, em vez de usar o id no panelGrid, voce adicionou um form dentro do dialog, e usou o id do form. OK, Coloquei o panelGrid dentro do form dentro do dialog, mas nao deu nada, ai tentei com o dialog dentro do form principal e fora dele, tambem nada. Sera que é algum problema do tomcat ou netbeans?

Utilizo netBeans 7.0 com que vem com tomcat 7.0.11

Diego_Adriano

Qual o escopo do Bean que vc esta usando ? Se não estiver usando nenhum mude pra View, pode ser o ciclo que esteja com problema …

W

Bom, estava usando o [color=blue]@ManagedBean[/color] apenas, pra ficar no default o nome da classe.

Coloquei o [color=darkblue]@ViewScoped[/color] mas nao mudou nada. Segue abaixo o codigo depois de todas as mudanças..

Imagem de como aparece a tela para mim: https://plus.google.com/u/0/photos/107785778487463664105/albums/5699657508887862465

Obs: Mudei o nome dos forms. Web
&lt;h:form id="frmChmAberto"&gt;
                &lt;p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px"&gt;
                    &lt;f:facet name="header"&gt;CHAMADOS EM ABERTO&lt;/f:facet&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ID" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.id}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="NÚMERO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.numero}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.identificacao}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column style="width: 50px"&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ABRIR" /&gt;
                        &lt;/f:facet&gt;
                        &lt;p:commandButton update="frmChmAberto:frmChm" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir"&gt;  
                            &lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado}" /&gt;  
                        &lt;/p:commandButton&gt;
                    &lt;/p:column&gt;
                &lt;/p:dataTable&gt;
                &lt;p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px"&gt;
                    &lt;h:form id="frmChm" prependId="true"&gt;
                        &lt;h:panelGrid columns="2"&gt;
                            &lt;h:outputText value="ID: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/&gt;
                            &lt;h:outputText value="NÚMERO: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/&gt;
                        &lt;/h:panelGrid&gt;
                    &lt;/h:form&gt;
                &lt;/p:dialog&gt;
            &lt;/h:form&gt;
Bean
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author pedro.fechener
 */
@ManagedBean
@ViewScoped
public class ChamadoBean {

    private List&lt;Chamado&gt; chamadoList;
    private Chamado chamadoSelecionado;

    public ChamadoBean() {
        chamadoList = new ArrayList&lt;Chamado&gt;();
        chamadoList.add(new Chamado(1L, "Chamado 1", "1º TESTE"));
        chamadoList.add(new Chamado(2L, "Chamado 2", "teste 2"));
        chamadoList.add(new Chamado(3L, "Chamado 3", "outro teste"));
    }

    public List&lt;Chamado&gt; getChamadoList() {
        return chamadoList;
    }

    public void setChamadoList(List&lt;Chamado&gt; chamadoList) {
        this.chamadoList = chamadoList;
    }

    public Chamado getChamadoSelecionado() {
        return chamadoSelecionado;
    }
}
Classe
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

/**
 *
 * @author pedro.fechener
 */
public class Chamado {
    private long id;
    private String numero;
    private String identificacao;

    public Chamado(long id, String numero, String identificacao) {
        this.id = id;
        this.numero = numero;
        this.identificacao = identificacao;
    }
    
    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the numero
     */
    public String getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(String numero) {
        this.numero = numero;
    }

    /**
     * @return the identificacao
     */
    public String getIdentificacao() {
        return identificacao;
    }

    /**
     * @param identificacao the identificacao to set
     */
    public void setIdentificacao(String identificacao) {
        this.identificacao = identificacao;
    }
    
    
}
Diego_Adriano

É impressão minha ou faltou o “setChamadoSelecionado()”?
Outra, eu nunca consegui usar um Form dentro de outro, não sei se isso é correto viu.

otaviojava

Diego Adriano:
É impressão minha ou faltou o “setChamadoSelecionado()”?
Outra, eu nunca consegui usar um Form dentro de outro, não sei se isso é correto viu.

Tem razão, já coloquei um form dentro de outro e deu erro.
Seria melhor ter um único form englobando tudo.

W

poise, mechi tanto que acabei apagando o setter…
Coloquei novamente

public void setChamadoSelecionado(Chamado chamadoSelecionado) { this.chamadoSelecionado = chamadoSelecionado; }

Recompilei tudo, parei, startei o tomcat, mas nao mudou nada…

quando ao form, eu ja vi gente falar sobre essa questão de form dentro de form, eu tentei das duas maneiras, nao deu certo :(.

No exemplo do prime, ele ta em um gridpanel… mas tentei com o dialog dentro do form com gridpanel e com ele fora do form com o gridpanel, ai tentei colocar o form no lugar do gridpanel, dentro e fora do form principal, tambem nanda… Isso ta me deixando louco ja, legal que tinha funcionado a um tempo, so que tive que refazer, ai nao consigo mais… :hunf:

Diego_Adriano

Cara, aparentemente a única coisa que estou vendo de diferente é o seu Form, o restante aparenta estar correto.
Bem, dê uma olhada nesse link cara, é onde estão os arquivos dos códigos do PrimeFaces:

http://code.google.com/p/primefaces/source/browse/examples/trunk/showcase/src/main/webapp/ui/

W

poise, eu tambem nao entendo por que não funciona…

O exemplo na pagina do prime para Row Selection do dataTable, que é exatamente o que tou fazendo aqui é:

&lt;h:form id="form"&gt;  
  
    &lt;p:growl id="msgs" showDetail="true" /&gt;  
  
    &lt;p:dataTable id="cars" var="car" value="#{tableBean.carsSmall}" tableStyle="width:auto"&gt;  
  
        &lt;p:column headerText="Model" style="width:100px"&gt;  
            &lt;h:outputText value="#{car.model}" /&gt;  
        &lt;/p:column&gt;  
  
        &lt;p:column headerText="Year" style="width:100px"&gt;  
            &lt;h:outputText value="#{car.year}" /&gt;  
        &lt;/p:column&gt;  
  
        &lt;p:column headerText="Manufacturer" style="width:100px"&gt;  
            &lt;h:outputText value="#{car.manufacturer}" /&gt;  
        &lt;/p:column&gt;  
  
        &lt;p:column headerText="Color" style="width:100px"&gt;  
            &lt;h:outputText value="#{car.color}" /&gt;  
        &lt;/p:column&gt;  
  
        &lt;p:column style="width:40px"&gt;  
             &lt;h:panelGrid columns="3" styleClass="actions" cellpadding="2"&gt;  
                 &lt;p:commandButton update=":form:display" oncomplete="carDialog.show()" icon="ui-icon-search" title="View"&gt;  
                     &lt;f:setPropertyActionListener value="#{car}" target="#{tableBean.selectedCar}" /&gt;  
                 &lt;/p:commandButton&gt;  
             &lt;/h:panelGrid&gt;  
        &lt;/p:column&gt;  
  
    &lt;/p:dataTable&gt;  
  
    &lt;p:dialog header="Car Detail" widgetVar="carDialog" resizable="false" id="carDlg"  
                showEffect="fade" hideEffect="explode" modal="true"&gt;  
  
        &lt;h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;"&gt;  
  
            &lt;f:facet name="header"&gt;  
                &lt;p:graphicImage value="/images/cars/#{tableBean.selectedCar.manufacturer}.jpg"/&gt;  
            &lt;/f:facet&gt;  
  
            &lt;h:outputText value="Model:" /&gt;  
            &lt;h:outputText value="#{tableBean.selectedCar.model}" style="font-weight:bold"/&gt;  
  
            &lt;h:outputText value="Year:" /&gt;  
            &lt;h:outputText value="#{tableBean.selectedCar.year}" style="font-weight:bold"/&gt;  
  
  
            &lt;h:outputText value="Manufacturer:" /&gt;  
            &lt;h:outputText value="#{tableBean.selectedCar.manufacturer}" style="font-weight:bold"/&gt;  
  
            &lt;h:outputText value="Color:" /&gt;  
            &lt;h:outputText value="#{tableBean.selectedCar.color}" style="font-weight:bold"/&gt;  
  
        &lt;/h:panelGrid&gt;  
  
    &lt;/p:dialog&gt;  
  
&lt;/h:form&gt;

Ok, da pra ver que o dialog esta dentro do form principal. Dentro do dialog, ele tem um panelGrid. ok, vou fazer do mesmo jeito

&lt;h:form id="frmChmAberto"&gt;
                &lt;p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px"&gt;
                    &lt;f:facet name="header"&gt;CHAMADOS EM ABERTO&lt;/f:facet&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ID" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.id}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="NÚMERO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.numero}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.identificacao}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column style="width: 50px"&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ABRIR" /&gt;
                        &lt;/f:facet&gt;
                        &lt;p:commandButton update=":frmChmAberto:frmChm" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir"&gt;  
                            &lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado}" /&gt;  
                        &lt;/p:commandButton&gt;
                    &lt;/p:column&gt;
                &lt;/p:dataTable&gt;
                &lt;p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px"&gt;
                    &lt;h:panelGrid id="frmChm" columns="2"&gt;
                        &lt;h:outputText value="ID: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/&gt;
                        &lt;h:outputText value="NÚMERO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/&gt;
                        &lt;h:outputText value="IDENTIFICAÇÃO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/&gt;
                    &lt;/h:panelGrid&gt;
                &lt;/p:dialog&gt;
            &lt;/h:form&gt;

Nada, não funciona :frowning: o dialog aparece mas os valores ficam em branco.
O amigo sugeriu colcoar um form no dialog ok, ficou assim:

&lt;h:form id="frmChmAberto"&gt;
                &lt;p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px"&gt;
                    &lt;f:facet name="header"&gt;CHAMADOS EM ABERTO&lt;/f:facet&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ID" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.id}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="NÚMERO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.numero}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.identificacao}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column style="width: 50px"&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ABRIR" /&gt;
                        &lt;/f:facet&gt;
                        &lt;p:commandButton update=":frmChmAberto:frmChm" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir"&gt;  
                            &lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado}" /&gt;  
                        &lt;/p:commandButton&gt;
                    &lt;/p:column&gt;
                &lt;/p:dataTable&gt;
                &lt;p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px"&gt;
                    &lt;h:form id="frmChm"&gt;
                        &lt;h:panelGrid  columns="2"&gt;
                            &lt;h:outputText value="ID: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/&gt;
                            &lt;h:outputText value="NÚMERO: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO: "/&gt;
                            &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/&gt;
                        &lt;/h:panelGrid&gt;
                    &lt;/h:form&gt;
                &lt;/p:dialog&gt;
            &lt;/h:form&gt;

Ai tem a questão de um form dentro do outro, OK vamos tirar de dentro do form:

&lt;h:form id="frmChmAberto"&gt;
                &lt;p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px"&gt;
                    &lt;f:facet name="header"&gt;CHAMADOS EM ABERTO&lt;/f:facet&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ID" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.id}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="NÚMERO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.numero}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.identificacao}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column style="width: 50px"&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ABRIR" /&gt;
                        &lt;/f:facet&gt;
                        &lt;p:commandButton update=":frmChmAberto:frmChm" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir"&gt;  
                            &lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado}" /&gt;  
                        &lt;/p:commandButton&gt;
                    &lt;/p:column&gt;
                &lt;/p:dataTable&gt;
            &lt;/h:form&gt;
            &lt;p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px"&gt;
                &lt;h:form id="frmChm"&gt;
                    &lt;h:panelGrid  columns="2"&gt;
                        &lt;h:outputText value="ID: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/&gt;
                        &lt;h:outputText value="NÚMERO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/&gt;
                        &lt;h:outputText value="IDENTIFICAÇÃO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/&gt;
                    &lt;/h:panelGrid&gt;
                &lt;/h:form&gt;
            &lt;/p:dialog&gt;

Em nenhuma dessas maneiras ele funciona :(… Simplismente não faço ideia do que possa ser. Aparentemente seria o Bean, mas o bean é o memso que popula a dataTable, se fosse este o problema a tabela não iria aparecer, me sobra apenas a chamada ao setter que me deixa em duvida.

&lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado}" /&gt;

até onde eu sei, o prime pega sozinho o seter e passa o parametro, sem precisar colocar explicito: [color=blue]chamadoBean.chamadoSelecionado(varChamado)[/color].
Mas pra garantir eu coloquei o codigo assim pra testar:

&lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado(varChamado)}" /&gt;

Quando faço isso, o netbeans ja me avisa que o metodo não foi encontrado. A pagina roda mesmo com esse alerta do net beans, porem não muda nada, não da erro nenhum, a tabela abre, mas o dialog continua em branco.

Tem alguma maneira de exibir um alert tipo um JoptionPane.showMessageDialog pra ver se ta executando mesmo?

W

aiaiai, não entendi nada. Agora funcionou.

&lt;h:form id="frmChmAberto"&gt;
                &lt;p:dataTable var="varChamado" value="#{chamadoBean.chamadoList}" rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'linha2' : 'linha1'}" rowIndexVar="rowIx" style="width: 700px"&gt;
                    &lt;f:facet name="header"&gt;CHAMADOS EM ABERTO&lt;/f:facet&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ID" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.id}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="NÚMERO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.numero}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="IDENTIFICAÇÃO" /&gt;
                        &lt;/f:facet&gt;
                        &lt;h:outputText value="#{varChamado.identificacao}" /&gt;
                    &lt;/p:column&gt;
                    &lt;p:column style="width: 50px"&gt;
                        &lt;f:facet name="header"&gt;
                            &lt;h:outputText value="ABRIR" /&gt;
                        &lt;/f:facet&gt;
                        &lt;p:commandButton update=":frmChmAberto:frmChm" oncomplete="dlgChamado.show()" icon="ui-icon-search" title="Abrir"&gt;  
                            &lt;f:setPropertyActionListener value="#{varChamado}" target="#{chamadoBean.chamadoSelecionado(varChamado)}" /&gt;  
                        &lt;/p:commandButton&gt;
                    &lt;/p:column&gt;
                &lt;/p:dataTable&gt;
                &lt;p:dialog header="CHMADO" widgetVar="dlgChamado" resizable="false" draggable="false" style="width: 100px"&gt;
                    &lt;h:panelGrid  columns="2" id="frmChm"&gt;
                        &lt;h:outputText value="ID: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.id}"/&gt;
                        &lt;h:outputText value="NÚMERO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.numero}"/&gt;
                        &lt;h:outputText value="IDENTIFICAÇÃO: "/&gt;
                        &lt;h:outputText value="#{chamadoBean.chamadoSelecionado.identificacao}"/&gt;
                    &lt;/h:panelGrid&gt;
                &lt;/p:dialog&gt;
            &lt;/h:form&gt;

Segue a pergunta então, como o exemplo do prime funciona se la não passa o parametro para o metodo? :?

Diego_Adriano

Estranho viu …rs
Eu como lhe mostrei uso sem passar o parâmetro …
Pq vc não tenta colocar um Println no setChamadoSelcionado e exibir o valor que esta sendo passado?
Talvez possa ser isso, por algum problema não esta passando o valor.

Criado 20 de janeiro de 2012
Ultima resposta 20 de jan. de 2012
Respostas 15
Participantes 3