P:dialog não carrega as informações

14 respostas
F

Bom galera,

Estou desenvolvendo um projeto onde tenho p:datatable no qual quando clicado em um item aparece um p:dialog, até ai tudo bem. Porém quando eu abro esse p:dialog ele não carrega as informações da coluna selecionada.

Segue a página abaixo:

<h:panelGrid id="matriz" columns="3">
				<p:dataTable value="#{matrizBean.resultList}" var="bean"
					bgcolor="#FFFFFF" id="teste"
					style="max-width: 4000px; min-width: 40px">
					<p:column style="max-width: 20px; min-width: 20px">
						
						<p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 0}" style="color:Red">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 0}" style="color:Red"/>
						</p:commandLink>
						
						<p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 1}" style="color:Yellow">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 1}" style="color:Yellow"/>
						</p:commandLink>
						
						<p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 2}" style="color:Gray">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 2}" style="color:Gray"/>
						</p:commandLink>
						
						<p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 3}" style="color:Blue">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 3}" style="color:Blue"/>
						</p:commandLink>
					</p:column>
					<p:column style="max-width: 500px; min-width: 20px">
						
						<p:commandLink onclick="dlg.show()" >
						<h:outputText value="#{bean.situacao}" />
						
					</p:commandLink>
					</p:column>
					</p:dataTable>
			</h:panelGrid>
			
				<p:dialog header="Informações da Reserva" widgetVar="dlg" resizable="true" dynamic="true">
					<h:form id="form">
					<h:panelGrid columns="2">
						<h:outputText for="hospede" value="Hóspede:" />
						<h:outputText id="hospede" value="#{bean.idcliente.pessoaFisica.pessoa.nome}" />
						<h:outputText for="entrada" value="Dia de entrada:" />
						<h:outputText id="entrada" value="#{bean.diaEntrada}" />						
						<h:outputText for="saida" value="Dia de saída:" />
						<h:outputText id="saida" value="#{bean.diaSaida}" />
						<h:outputText for="total" value="Total:" />
						<h:outputText id="total" value="#{bean.total}" />
						<h:outputText for="adiantamento" value="Adiantamento:" />
						<h:outputText id="adiantamento" value="#{bean.totalPago}" />
						<h:outputText for="falta" value="Falta pagar:" />
						<h:outputText id="falta" value="#{bean.faltaPagar}" />
						
					</h:panelGrid>
                                 </h:form>	
				</p:dialog>

Desde já agradeço a atenção.

14 Respostas

A

você não está dando update no componente do dialog

C

Cara talvez isso de ajuda

&lt;p:dataTable var="cargo" value="#{cargoControlle.listaCargo}" 
                                     paginator="true" rows="10" 
                                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
                                     {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"&gt;

                            &lt;p:column&gt;
                                &lt;c:facet name="header"&gt;
                                    Cargo
                                &lt;/c:facet&gt;
                                &lt;h:outputText value="#{cargo.dsCargo}" /&gt;
                            &lt;/p:column&gt;

                            &lt;p:column&gt;
                                &lt;p:commandLink value="Editar" oncomplete="panelEditar.show();" process="@this" update=":formCadCargo:panelEditar"&gt;
                                    &lt;c:setPropertyActionListener value="#{cargo}" target="#{cargoControlle.cargo}" /&gt;
                                &lt;/p:commandLink&gt;
                            &lt;/p:column&gt;

                            &lt;p:column&gt;
                                &lt;p:commandLink value="Excluir" oncomplete="panelExcluir.show();" process="@this" update=":form"&gt;
                                    &lt;c:setPropertyActionListener value="#{cargo}" target="#{cargoControlle.cargo}" /&gt;
                                &lt;/p:commandLink&gt;
                            &lt;/p:column&gt;
                        &lt;/p:dataTable&gt;
                        
                        <a href="http://localhost:8084/projetoEstagio/faces/paginas/cadastros/cadCargo.xhtml" 
                            >
                            Novo Cargo
                        </a>

                        &lt;p:dialog modal="true" header="Excluir" showEffect="fade" hideEffect="explode" 
                                  widgetVar="panelExcluir"&gt;

                            &lt;div class="form-inline"&gt;
                                &lt;h:outputLabel value="Quer excluir o cargo "/&gt;
                                &lt;p:spacer width="2"/&gt;
                                &lt;h:outputLabel value="#{cargoControlle.cargo.dsCargo}"/&gt;
                                &lt;p:spacer width="2"/&gt;
                                &lt;h:outputLabel value=" ?" /&gt;
                            &lt;/div&gt;

                            &lt;div class="form-actions"&gt;
                                &lt;p:commandButton styleClass="btn btn-danger" value="Sim" update=":form :formCadCargo"
                                                 actionListener="#{cargoControlle.excluir}" /&gt;
                                &lt;p:commandButton styleClass="btn btn-primary" value="Não"
                                                 onclick="panelExcluir.hide();"
                                                 style="margin-left: 20px;"/&gt;
                            &lt;/div&gt;
                        &lt;/p:dialog&gt;
                    &lt;/fieldset&gt;
                &lt;/h:form&gt;


                &lt;f:include src="../cadastros/forms/formEditCadCargo.xhtml"/&gt;
                &lt;f:include src="../footer.xhtml"/&gt;

Pagina formEditCargo

&lt;f:composition&gt;
            &lt;h:form styleClass="form-horizontal" id="formCadCargo" style="margin-left: -20px;"&gt;
                &lt;p:dialog modal="true" width="500" height="260" id="panelEditar" widgetVar="panelEditar"&gt;
                    &lt;fieldset&gt;
                        &lt;legend&gt;Cadastro Cargo&lt;/legend&gt;

                        &lt;p:growl id="growl" showDetail="true" sticky="true" life="10"/&gt;

                        &lt;div class="control-group" style="padding-top: 40px;"&gt;
                            &lt;h:outputLabel value="Cargo" styleClass="control-label" /&gt;
                            &lt;div class="controls"&gt;
                                &lt;p:inputText required="true" requiredMessage="Campo Cargo é requerido" 
                                             styleClass="input input-large" 
                                             value="#{cargoControlle.cargo.dsCargo}" /&gt;
                            &lt;/div&gt;

                        &lt;/div&gt;

                        &lt;div class="form-actions" style="margin-top: 60px;"&gt;
                            &lt;p:commandButton value="Salvar" styleClass="btn btn-primary" 
                                             update=":form @this growl" onclick="panelEditar.hide()"
                                             actionListener="#{cargoControlle.salvarAtualizar}"/&gt;
                            &lt;p:commandButton value="Cancelar" styleClass="btn" onclick="panelEditar.hide()"
                                             style="margin-left: 20px;"/&gt;
                        &lt;/div&gt;
                    &lt;/fieldset&gt;
                &lt;/p:dialog&gt;
            &lt;/h:form&gt;
        &lt;/f:composition&gt;
    &lt;/h:body&gt;

Espero que lhe ajude qualquer duvida sobre meu codigo so perguntar que eu respondo

F

Olá André,

Coloquei o update nos commandLink e mesmo assim continua sem carregar as informações

&lt;p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 0}" style="color:Red" update="display"&gt;
							&lt;h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 0}" style="color:Red" update="display"/&gt;
						&lt;/p:commandLink&gt;
A

você tem que realizar o update no ID do componente, não no widgetVar, no seu caso, o teu dialog n tem um ID, por isso não está sendo realizado o update. Utilize o firebug para ver o nome exato do teu dialog, ou apenas update="@all", porém, não é recomendado fazer isso. profavelmente, se o id do teu dialog for display, ficará na view com o nome form:display

E
Coloque um id no panelGrid, e no botão você coloca
<p:commandLink onclick="dlg.show()" rendered="#{bean.valorSituacao == 0}" style="color:Red" actionListener="#{bean.prepararObjetoSelecionado}" update=":form:IdPanelGrid" >  
                            <h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 0}" style="color:Red" update="display"/>  
                             
                        </p:commandLink>

E no bean:

public void prepararObjetoSelecionado(ActionEvent actionEvent){
		objeto = seuDataModel.getRowData();
	}
F
&lt;p:dialog header="Informações da Reserva" widgetVar="dlg" resizable="true" dynamic="true" id="dialogo"&gt;
					&lt;h:form id="form"&gt;
					&lt;h:panelGrid columns="2"&gt;
						&lt;h:outputText for="hospede" value="Hóspede:" /&gt;
						&lt;h:outputText id="hospede" value="#{bean.idcliente.pessoaFisica.pessoa.nome}" /&gt;
						&lt;h:outputText for="entrada" value="Dia de entrada:" /&gt;
						&lt;h:outputText id="entrada" value="#{bean.diaEntrada}" /&gt;						
						&lt;h:outputText for="saida" value="Dia de saída:" /&gt;
						&lt;h:outputText id="saida" value="#{bean.diaSaida}" /&gt;
						&lt;h:outputText for="total" value="Total:" /&gt;
						&lt;h:outputText id="total" value="#{bean.total}" /&gt;
						&lt;h:outputText for="adiantamento" value="Adiantamento:" /&gt;
						&lt;h:outputText id="adiantamento" value="#{bean.totalPago}" /&gt;
						&lt;h:outputText for="falta" value="Falta pagar:" /&gt;
						&lt;h:outputText id="falta" value="#{bean.faltaPagar}" /&gt;
						
					&lt;/h:panelGrid&gt;
					
					&lt;p:commandButton id="submitButton" value="Salvar" update="matriz" oncomplete="dlg.hide()" /&gt;
						
					&lt;/h:form&gt;	
				&lt;/p:dialog&gt;

Mesmo com o id no dialog continua sem carregar as informações, tentei colocar o @all e também não pegou

E

Leu meu ultimo post?

R

Não entendi…

e como ficaria o “objeto” e o “seuDataModel” ?? valores pra ele?

private <?> objeto;
private <?> seuDataModel;

E
private Object object;  
   private DataModel<Object> meusObjetos;  
  
      
    @PostConstruct   
    private void init(){  
             Object = new Object();  
     }  
      

//preenche o seu datamodel. Há outras formas de fazer isso, inclusive boas práticas. Isso é só um exemplo rápido.
    public  DataModel<Object> getListarObjects() {  
        try {  
            meusObjetos  = new ListDataModel<Object>(suaPersistencia.listaObjetos());  
            return meusObjetos;  
        } catch (Exception e) {  
            e.printStackTrace();  
        }         
        return null;  
    }  
  
    public Object getObject(){  
        return object;  
    }  
  
    public void setObject(Object object){  
        this.object=object;  
    }  
  // Aqui o objeto irá receber o objeto selecionado do seu DataModel. Agora você pode manuseá-lo como quiser.
    public void prepararObjectSelecionado(ActionEvent actionEvent){  
     object  = meusObjetos.getRowData();  
    }  
}
R

to entendendo… obrigado!

qualquer coisa eu postarei novamente aqui… se tiver algum problema :smiley:

R

Vamos lá novamente :P

meu codigo xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	template="/template/mainRecepcao.xhtml">


	<ui:define name="body">
		<h:form id="orcamento">
			<h:panelGrid id="tbl" columns="3" bgcolor="#FFFFFF" width="50px"
				style="width:auto">
				<h:commandButton id="anterior" image="/images/voltar.gif"
					action="#{matrizBean.anterior}" update="orcamento" />
				<h:outputText value="#{matrizBean.meses}" />
				<h:commandButton id="proximo" image="/images/proximo.gif"
					action="#{matrizBean.proximo}" update="orcamento" />
			</h:panelGrid>
			<h:panelGrid id="matriz" columns="3">
				<p:dataTable value="#{matrizBean.resultList}" var="bean"
					bgcolor="#FFFFFF" id="teste"
					style="max-width: 4000px; min-width: 40px">
					<p:column style="max-width: 20px; min-width: 20px">
						
						<p:commandLink actionListener="#{bean.prepararObjetoSelecionado}" onclick="dlgDadosHospedes.show()" rendered="#{bean.valorSituacao == 0}" style="color:Red" update=":form:IdPanelDlg">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 0}" style="color:Red"/>
						</p:commandLink>
						
						<p:commandLink actionListener="#{bean.prepararObjetoSelecionado}" onclick="dlgDadosHospedes.show()" rendered="#{bean.valorSituacao == 1}" style="color:Yellow" update=":form:IdPanelDlg">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 1}" style="color:Yellow"/>
						</p:commandLink>
						
						<p:commandLink actionListener="#{bean.prepararObjetoSelecionado}" onclick="dlgDadosHospedes.show()" rendered="#{bean.valorSituacao == 2}" style="color:Gray" update=":form:IdPanelDlg">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 2}" style="color:Gray"/>
						</p:commandLink>
						
						<p:commandLink actionListener="#{bean.prepararObjetoSelecionado}" onclick="dlgDadosHospedes.show()" rendered="#{bean.valorSituacao == 3}" style="color:Blue" update=":form:IdPanelDlg">
							<h:outputText value="#{bean.idquarto.numero}" rendered="#{bean.valorSituacao == 3}" style="color:Blue"/>
						</p:commandLink>
					</p:column>
					<p:column style="max-width: 500px; min-width: 20px">
						
						<p:commandLink onclick="dlgDadosHospedes.show()" >
						<h:outputText value="#{bean.situacao}" />
						
					</p:commandLink>
					</p:column>
					</p:dataTable>
			</h:panelGrid>
			
			<p:dialog header="Informações da Reserva" widgetVar="dlg" 
			resizable="true" dynamic="true" id="dlgDadosHospedes" modal="true" 
			showEffect="explode" hideEffect="explode" rendered="true">
			
					<h:form id="form">
					
						<h:panelGrid columns="2" id="IdPanelDlg">
							<h:outputText for="hospede" value="Hóspede:" />
							<h:outputText id="hospede" value="#{bean.idcliente.pessoaFisica.pessoa.nome}" />
							<h:outputText for="entrada" value="Dia de entrada:" />
							<h:outputText id="entrada" value="#{bean.diaEntrada}" />						
							<h:outputText for="saida" value="Dia de saída:" />
							<h:outputText id="saida" value="#{bean.diaSaida}" />
							<h:outputText for="total" value="Total:" />
							<h:outputText id="total" value="#{bean.total}" />
							<h:outputText for="adiantamento" value="Adiantamento:" />
							<h:outputText id="adiantamento" value="#{bean.totalPago}" />
							<h:outputText for="falta" value="Falta pagar:" />
							<h:outputText id="falta" value="#{bean.faltaPagar}" />
							
						</h:panelGrid>
					
					<p:commandButton id="submitButton" value="Salvar" update="matriz" oncomplete="dlg.hide()" />
						
					</h:form>	
				</p:dialog>			
				
				
			<div class="legenda" style="FONT-SIZE: small;">
				<h1>Legendas</h1>

				<table>
					
					<tr>
						<td width="40" height="20" bgcolor="#FFF212"></td>
						<td>Limpeza</td>

					</tr>
					<tr>
						<td width="40" height="20" bgcolor="#ED3237"></td>
						<td>Ocupado</td>

					</tr>
					<tr>
						<td width="40" height="20" bgcolor="#00AFEF"></td>
						<td>Pré Reserva</td>

					</tr>
					
					<tr>
						<td width="40" height="20" bgcolor="#DCDCDC"></td>
						<td>Disponível</td>

					</tr>
					
				</table>
			</div>
			<!--  DIV LEGENDA -->

		</h:form>
		

	</ui:define>

</ui:composition>

meu Bean:

package br.unipe.akropolis.view;

import java.util.*;

import javax.faces.bean.*;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.SelectItem;
import javax.persistence.Transient;

import org.jboss.weld.util.collections.ArraySet;

import br.com.ltn4java.data.DataCompare;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.template.AbstractEditPageBean;
import br.gov.frameworkdemoiselle.template.AbstractListPageBean;
import br.gov.frameworkdemoiselle.template.AbstractPageBean;
import br.unipe.akropolis.business.QuartoBC;
import br.unipe.akropolis.business.ReservasBC;
import br.unipe.akropolis.domain.Cliente;
import br.unipe.akropolis.domain.Funcionario;
import br.unipe.akropolis.domain.Quarto;
import br.unipe.akropolis.domain.Reservas;

@ManagedBean
@RequestScoped
@ViewController
public class MatrizBean extends AbstractListPageBean<Reservas, Long>{

	private List<Integer> dia = new ArrayList<Integer>();
	private List<Quarto> quarto = new ArrayList<Quarto>();
	private List<Reservas> listaReserva = new ArrayList<Reservas>();
	private Map<Quarto, Map<Long, Long>> valores;
	private HashMap<Quarto, Map<Long, Long>> map;
	private Calendar cal = Calendar.getInstance();	
	private QuartoBC quartoBC = new QuartoBC();
	private ReservasBC reservasBC = new ReservasBC();
	private Date dataAtual = new Date();
	private Date mesAtual = new Date();
	private String meses = new String();
	private List<Long> quartos = new ArrayList<Long>();
	private Cliente selectedCliente;
	private List<Reservas> reservas = new ArrayList<Reservas>();
	private Reservas reserva;
	private DataModel<Object> meusObjetos;
	

	public MatrizBean() {		
		listaReserva = this.reservasBC.findAll();
		quarto = this.quartoBC.findAll();
		mesAtual.setMonth(getMesAtual().getMonth());
		inicializaValores();
		}
	
	private void inicializaValores() {
		reservas.removeAll(reservas);
		dia.removeAll(dia);
		cal.setTime(mesAtual);
		cal.set(Calendar.DAY_OF_MONTH, 1);			
		int ultimoDia = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		for(Integer i = 1; i <= ultimoDia; ++i){
			dia.add(i);
		}
		if(mesAtual.getMonth() == 0){
			setMeses("Janeiro " + cal.get(Calendar.YEAR));
		} else if(mesAtual.getMonth() == 1){
			setMeses("Fevereiro " + cal.get(Calendar.YEAR));
		} 		else if(mesAtual.getMonth() == 2){
					setMeses("Março " + cal.get(Calendar.YEAR));
				} else if(mesAtual.getMonth() == 3){
					setMeses("Abril " + cal.get(Calendar.YEAR));
					} else if(mesAtual.getMonth() == 4){
						setMeses("Maio " + cal.get(Calendar.YEAR));
					  } else if(mesAtual.getMonth() == 5){
						  setMeses("Junho " + cal.get(Calendar.YEAR));
					  	} else if(mesAtual.getMonth() == 6){
					  		setMeses("Julho " + cal.get(Calendar.YEAR));
					  	  } else if(mesAtual.getMonth() == 7){
					  		setMeses("Agosto " + cal.get(Calendar.YEAR));
					  	  	} else if(mesAtual.getMonth() == 8){
					  	  		setMeses("Setembro " + cal.get(Calendar.YEAR));
					  	  	  } else if(mesAtual.getMonth() == 9){
					  	  		  setMeses("Outubro " + cal.get(Calendar.YEAR));
					  	  	  	} else if(mesAtual.getMonth() == 10){
					  	  	  		setMeses("Novembro " + cal.get(Calendar.YEAR));
					  	  	  	  } else {
					  	  	  		  setMeses("Dezembro " + cal.get(Calendar.YEAR));
					  	  	  	  	}
	
		for (Quarto cat:this.quarto) {
			
				for(Reservas res:this.listaReserva){
					Quarto quartos = new Quarto();
					if((res.getDiaEntrada().getYear() == mesAtual.getYear()) && (res.getDiaSaida().getYear() == mesAtual.getYear())){
						if((res.getDiaEntrada().getMonth() == mesAtual.getMonth()) || (res.getDiaSaida().getMonth() == mesAtual.getMonth())){
							
								if(cat.getNumero().equals(res.getIdquarto().getNumero())){
//										quartos = cat.getClass();
	
										System.out.println("QUARTO: " + cat.getNumero());
										System.out.println("QUARTO: " + cat.getAndar());
										reservas.add(res);
	
								
							    }
							
						}// fim do 2 if
						
				}// fim do if do ano
			} // fim for reservas
			
			System.out.println("VALORES: "+ valores);
		} // fim for quarto
	}
	
//	public Map<Quarto,Map<Long, Long>> getValores() {
//		if (this.valores == null) {
//			this.inicializaValores();
//		}
//		return this.valores;
//	}
	
//	public Map<Quarto,Map<Long, Long>> getMap() {
//		if (this.map == null) {
//			this.inicializaValores();
//		}
//		return this.map;
//	}
	
	
//	public void prepararObjetoSelecionado(ActionEvent actionEvent){  
//        objeto = seuDataModel.getRowData();  
//    } 

	public void proximo(){
		mesAtual.setMonth(getMesAtual().getMonth() + 1);
		inicializaValores();
	}
	
	public void anterior(){
		mesAtual.setMonth(getMesAtual().getMonth() - 1);
		inicializaValores();
	}
				
	public void setValores(Map<Quarto,Map<Long, Long>> valor) {
		this.valores = valor;	
	}
	
	public List<Integer> getDia() {
		return dia;
	}
	
	public void setDia(List<Integer> dia) {
		this.dia = dia;
	}
	
	public List<Quarto> getQuarto() {
		return quarto;
	}
	
	public void setQuarto(List<Quarto> quarto) {
		this.quarto = quarto;
	}
	
	public List<Reservas> getListaReserva() {
		return listaReserva;
	}
	
	public void setListaReserva(List<Reservas> listaReserva) {
		this.listaReserva = listaReserva;
	}

	public Date getDataAtual() {
		return dataAtual;
	}

	public void setDataAtual(Date dataAtual) {
		this.dataAtual = dataAtual;
	}

	public Date getMesAtual() {
		return mesAtual;
	}

	public void setMesAtual(Date mesAtual) {
		this.mesAtual = mesAtual;
	}

	public String getMeses() {
		return meses;
	}

	public void setMeses(String meses) {
		this.meses = meses;
	}

	public Cliente getSelectedCliente() {
		return selectedCliente;
	}

	public void setSelectedCliente(Cliente selectedCliente) {
		this.selectedCliente = selectedCliente;
	}

	@Override
	protected List<Reservas> handleResultList() {
		// TODO Auto-generated method stub
		return reservas;
	}
	
	
	
	public DataModel<Object> getMeusObjetos() {
		return meusObjetos;
	}

	public void setMeusObjetos(DataModel<Object> meusObjetos) {
		this.meusObjetos = meusObjetos;
	}

	public void prepararObjetoSelecionado(ActionEvent actionEvent){  
        Object ob = new Object();
		ob = meusObjetos.getRowData();  
    } 
	
}
R

quando clico nao faz mais nada :stuck_out_tongue:

E

Eu escrevi object para ficar de forma mais genérica, não é para utiliza-lo.

Vamos lá:
O seu datatable é preenchido com uma lista de reservas, certo?

<p:dataTable autoUpdate="true" var="reserva" id="tabela"
			value="#{reservaManagedBean.listarReservas}"
			emptyMessage="Não há reservas.">
			<f:facet name="header">
<p:column>
				<f:facet name="header">
					<h:outputText value="Status" />
				</f:facet>
				<h:outputText value="#{reserva.status}" />
			</p:column>
...

			<p:column>
	<p:commandButton
					actionListener="#{reservaManagedBean.prepararReservaSelecionado}"
					title="Alterar" update=":form:infosreserva"
                                        onclick="dialogdados.show()"
					icon="ui-icon-pencil" />
                    	</p:column>
		</p:dataTable>

Agora, na classe “reservaManagedBean” vai os métodos que eu criei antigamente, mas não é para utilizar Object, e sim Reserva. Isso evita,além de outras coisas, casts desnecessários em tudo quanto é canto.

private DataModel<Reserva> listaReservas;
...

E como isso aparecerá na tela? Reparou que tem um update no botão lá em cima? Então basta fazer isso:

<p:dialog widgetVar="dialogdados" resizable="false" showEffect="slide">
			<p:panelGrid id="infosreserva" columns="2" style="margin-bottom:10px"
				cellpadding="5">

				<h:outputLabel for="Status" value="Status: " />
				<p:inputText id="titulo" value="#{reservaManagedBean.reserva.status}" />

<p:commandButton actionListener="#{reservaManagedBean.alterarReserva}"
					value="Alterar" update=":form:tabela"
					onsuccess="dialogdados.hide()" icon="ui-icon-disk"
					widgetVar="botaoalterar" />
			</p:panelGrid>
</p:dialog>

Ponto! :slight_smile:
Esse código tem um os mesmo métodos e nomes que estão no seu. É só um exemplo. Agora basta adapta-lo.

R

e ai Erick blz? seguinte. ei o meu problema que ainda não funciona…

Minha pagina html

<p:column style="max-width: 500px; min-width: 20px">
						
						<p:commandLink onclick="dlg.show()" oncomplete="dlg.show()" actionListener="#{matrizBean.prepararAlterarForm}" 
						update=":form:formDLG" ajax="true">
						<h:outputText value="#{bean.situacao}" />
						
					</p:commandLink>

nessa parte ai, eu to colocando o update no form certo?

agora veja a segunda parte:

<p:dialog header="Informações da Reserva" widgetVar="dlg" resizable="true" dynamic="true" id="dlg" modal="true" draggable="false" >
					<h:form id="formDLG">
					<h:panelGrid columns="2" id="formDLG2">
...

dessa vez eu consegui desenrolar o MB que está assim:
Contrutor:

public MatrizBean() {		
		listaReserva = this.reservasBC.findAll();
		quarto = this.quartoBC.findAll();
		mesAtual.setMonth(getMesAtual().getMonth());
		inicializaValores();
		lista = reservas;
		}

Atributos:

private List<Reservas> lista; private DataModel<Reservas> listaForm = new ListDataModel<Reservas>(lista);
com os seus respectivos gets/sets…

e eis o método do prepara…

public void prepararAlterarForm(ActionEvent actionEvent) {
		this.lista = (List<Reservas>) listaForm.getRowData();
	}

porem ainda não carrega nada… nenhum dado…

Criado 29 de junho de 2012
Ultima resposta 6 de jul. de 2012
Respostas 14
Participantes 5