[RESOLVIDO] Problemas DataTable com pagination e filter e p:dialog - Primefaces

1 resposta
C

Galera,

Estou com um problema de atualizar um p:dialog, quando chamo o p:dialog através de um p:commandbutton, a primeira vez ele não carrega os dados selecionados de um DataTable, porém quando clico novamente no p:commandButton ele atualiza os dados do p:dialog com as informações da linha do DataTable. Outro problema é quando faço o filtro no DataTable, ele atualiza a paginação, mas não atualiza os dados na tabela, segue o código abaixo:

filtroGofaCentro.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<ui:composition template="/template/templateCoger.xhtml" 
			 xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:f="http://java.sun.com/jsf/core"
             xmlns:p="http://primefaces.org/ui">
    <ui:define name="conteudoCentro">    
							    <h:form id="formPesquisaGrupoOficio" prependId="false">  
							    	<h:panelGrid>
						                <h:panelGroup id="pesquisaGofa">
						                       <h:panelGrid columns="1" width="1000">
												<p:dataTable  var="grupoOficio" value="#{grupoOficioBean.mediumGofasModel}" selection="#{grupoOficioBean.selectedGofa}" selectionMode="single" id="listaGofa"   paginator="true" emptyMessage="Nenhum registro." rows="20" style="max-width: 1100px; min-width: 1100px" >  
											        <f:facet name="header">  
														Pesquisa Grupo Ofício Atuação  
											        </f:facet>  
													
													<p:ajax event="rowSelect" update=":formPesquisaGrupoOficio:displaySingle" oncomplete="singleGofaDialog.show()" />
													
													<p:column headerText="Número"  filterBy="#{grupoOficio.gofaNumero}" filterMatchMode="contains"  style="max-width: 60px; min-width: 60px; overflow: hidden" >  
											            <f:facet name="header">  
											                <h:outputText value="Número" style="FONT-WEIGHT: bold;"/>     
											            </f:facet>      
											                <h:outputText value="#{grupoOficio.gofaNumero}" />         
											        </p:column>  
											        
													<p:column headerText="Nome" filterBy="#{grupoOficio.gofaNome}" filterMatchMode="contains"   style="max-width: 450px; min-width: 450px; overflow: hidden">							        
											            <f:facet name="header" >  
											                <h:outputText value="Nome" style="FONT-WEIGHT: bold;"/>   
											            </f:facet>      
											                <h:outputText value="#{grupoOficio.gofaNome}" />       
											        </p:column>  
													<f:facet name="footer">  
											            <p:commandButton id="sigleViewButton" value="Visualizar" icon="ui-icon-search"  ajax="true"
											                            update=":formPesquisaGrupoOficio:displaySingle" oncomplete="singleGofaDialog.show()"/>  
											        </f:facet> 							                     
											    </p:dataTable>  
						                      </h:panelGrid>
						                  </h:panelGroup>
															   			
						   				<p:dialog modal="false" id="dialog" header="Grupo Ofício" widgetVar="singleGofaDialog" resizable="false" >  
									        <h:panelGrid id="displaySingle" columns="2" cellpadding="4">  
									            <h:outputText value="Número:" />  
									            <h:outputText id="gofaNroPam" name="gofaNroPam" value="#{grupoOficioBean.selectedGofa.gofaNumero}" />  
									            <h:outputText value="Nome Gofa:" />  
									            <h:outputText value="#{grupoOficioBean.selectedGofa.gofaNome}" />  
									        </h:panelGrid>  
									        <h:panelGrid id="displaySingleFilter" columns="4" cellpadding="4">  
									            <h:outputText value="Data Inicial:" />  
									            <p:calendar value="#{relatorioCNMP.dataInicial}" id="popupButtonCal1"  showOn="button" />
									            <h:outputText value="Data Fim:" />  
									            <p:calendar value="#{relatorioCNMP.dataFinal}"   id="popupButtonCal2"  showOn="button" />
									        </h:panelGrid>
									        <p:commandButton id="btnPesquisar" value="Pesquisar" action="relatorioCNMPClasses">
									        	<f:param id="gofaNumeroParametro" name="gofaNumeroParametro" value="#{grupoOficioBean.selectedGofa.gofaNumero}" />
									        </p:commandButton>
							   			</p:dialog>
							   		</h:panelGrid> 
								</h:form>
		</ui:define>
</ui:composition>
</html>

templateCoger.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
		<h:head>  
			<link type="text/css" rel="stylesheet"  href="#{request.contextPath}/css/custom/jquery-ui-1.8.21.custom.css" />
		</h:head>  
		<h:body>
		<!-- Top -->  
		        <p:layout fullPage="true">  
		  			<p:layoutUnit position="north" size="100" resizable="false" closable="false" collapsible="false">  
		        		<center>
		        			<ui:insert name="conteudoCabecalho"/>
		        		</center>  
		    		</p:layoutUnit> 
		            <!-- Menu a esquerda -->  
		      		<p:layoutUnit position="west" size="300" header="Menu" resizable="false" closable="false" collapsible="false">  
							<ui:insert name="menuEsquerdo">
								<ui:include src="/menu.xhtml" />
							</ui:insert>
		    		</p:layoutUnit>
		  
		            <!-- Centro -->  
		            <p:layoutUnit id="centro" position="center" >  
		              		<ui:insert name="conteudoCentro"></ui:insert>
		            </p:layoutUnit>
		              
		            <!-- Inferior -->
		  			<p:layoutUnit position="south" size="100" resizable="false" closable="false" collapsible="false">
		        		  <center>
								<ui:insert name="conteudoRodape"/>        		
						  </center> 
		    		</p:layoutUnit> 
		           </p:layout>
		</h:body>
</html>

Estou usando templates.

1 Resposta

C

Caros,

Consegui resolver, alterei um arquivo que não tinha nada a ver com os arquivos postados e que chamada as telas que estavam com o erro:

<p:commandLink value=“Por Movimento” />

por

<p:commandLink value=“Por Movimento” ajax=“false”/>

<ui:fragment xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:p="http://primefaces.org/ui"
              xmlns:f="http://java.sun.com/jsf/core">
        		 <p:accordionPanel activeIndex="0" autoHeight="false">  
                    <p:tab title="Documento">  
                        <h:form>  
                        	<p:commandLink value="Por Classe" action="filtroGofaCentro" ajax="false">
                        	</p:commandLink>
                        </h:form>  
                        <h:form>
                        	<p:commandLink value="Por Assunto" ajax="false"/>
                        </h:form>
						<h:form>                        	  
                        	<p:commandLink value="Por Movimento" ajax="false"/>
                        </h:form>  
                    </p:tab>  

                    <p:tab title="Relatórios">  
                    </p:tab>  

                    <p:tab title="Solicitações">  
                    </p:tab>  
                </p:accordionPanel>  
</ui:fragment>
Criado 18 de julho de 2012
Ultima resposta 19 de jul. de 2012
Respostas 1
Participantes 1