Export data from a p:dialog

UI Components for JSF
Post Reply
superjony
Posts: 15
Joined: 23 Nov 2018, 01:27

26 Feb 2019, 15:59

Hi everybody,

I would like to know if it's possible to use data exporter in a p:dialog.

I explain my issue :

I have a datatable with buttons in each row for editing, deleting, details etc...
When i click on the button it opens a p dialog.
Now what i want is to export the datas from the p dialog but it's not working, maybe is there another solution?

=> HERE'S THE DATATABLE WITH A BUTTON "DETAILS"

Code: Select all

<h:messages />	
<p:growl id="messages"/>	

 <p:dataTable id="tbl" var="projet" value="#{projetMB.allProjets}" rows="8" styleClass="primeTable" 
selection="#{projetMB.selectedPr}" rowKey="#{projet.projetId}"
 paginator="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} 
 {LastPageLink} {RowsPerPageDropdown} " 
  currentPageReportTemplate="Affiche ({startRecord}-{endRecord}) sur ({totalRecords}) Eléments" 
  rowsPerPageTemplate="5,8,10,15" widgetVar="pr" lazy="false" >


<!-- CheckBox pour la selection multiple -->
     <p:column selectionMode="multiple" style="width:16px;text-align:center" exportable="false"/>  
    
    <!-- Eléments de la table "Projet" -->
    
    <p:column headerText="Id" filterBy="#{projet.projetId}" filterStyle="display:none">
        <h:outputText value="#{projet.projetId}" />
    </p:column>
 
    <p:column headerText="Nom" filterBy="#{projet.nom}" filterStyle="display:none" >
        <h:outputText value="#{projet.nom}" />
    </p:column>
    
     <p:column headerText="Type" filterBy="#{projet.typeProjet}" filterStyle="display:none" >
        <h:outputText value="#{projet.typeProjet}" />
    </p:column>
    
     <p:column headerText="Etat" filterBy="#{projet.etatProjet}" filterStyle="display:none" >
        <h:outputText value="#{projet.etatProjet}" />
    </p:column>
    
     <p:column headerText="Priorite" filterBy="#{projet.prioriteProjet}" filterStyle="display:none" >
        <h:outputText value="#{projet.prioriteProjet}" />
    </p:column>
    
   <!-- Clé étrangère --> 
    <p:column headerText="Id client" filterBy="#{projet.client.clientId}" filterStyle="display:none" >
        <h:outputText value="#{projet.client.clientId}" />
    </p:column>
    
     <!-- Clé étrangère --> 
    <p:column headerText="Id Feuille" filterBy="#{projet.feuilleTemps.idFT}" filterStyle="display:none" >
        <h:outputText value="#{projet.feuilleTemps.idFT}" />
    </p:column>
    
    
    <!-- Colonne "Action" pour les boutons Details, Modifier,Supprimer -->
    <p:column headerText="Actions" exportable="false"> <!-- On exporte pas la dernière colonne -->


<!-- Bouton Details -->	
  	  	
   <p:commandButton id="toolTip5" update=":form:projetDetail" icon="fa fa-search-plus"
   oncomplete="PF('projetDialog').show()" rendered="#{sessionMB.userChefProjet}" 
   style="background-color:#c0d4f9; ">
   <f:setPropertyActionListener value="#{projet}" target="#{projetMB.selectedProjet}" />
   <p:tooltip for="toolTip5" value="Détails projet" style="font-size:10px; " position="bottom" />
   </p:commandButton>

</p:column>	
				
</p:dataTable>
 
  	 
=> HERE'S THE P DIALOG TO DISPLAY DATA FROM DATATABLE

Code: Select all


<p:dialog header="Détails Projet" widgetVar="projetDialog" modal="true" showEffect="fade" 
		hideEffect="clip" resizable="true" minimizable="true" maximizable="true" >
       	 <p:outputPanel id="projetDetail" >
       	     	 
       	 <p style="font-size:16px; font-style:italic; font-weight:bold;">
       	 Informations relatives au projet : "#{projetMB.selectedProjet.nom}" </p> 
            <hr/><br/>
             <div id="cadreDetailProjet" >	 <br/>
       	     <p:panelGrid columns="2"  >
       	      
             
                <h:outputText value="Id projet :" />
                <h:outputText value="#{projetMB.selectedProjet.projetId}" />
 
                <h:outputText value="Nom projet :" />
                <h:outputText value="#{projetMB.selectedProjet.nom}" />
                
                <h:outputText value="Type projet :" />
                <h:outputText value="#{projetMB.selectedProjet.typeProjet}" />            
                 
                <h:outputText value="Etat projet :" />
                <h:outputText value="#{projetMB.selectedProjet.etatProjet}" />
                
                <h:outputText value="Priorite projet :" />
                <h:outputText value="#{projetMB.selectedProjet.prioriteProjet}" />
                                 
                <!-- Clé Etrangère -->
                <h:outputText value="Id client :" />
                <h:outputText value="#{projetMB.selectedProjet.client.clientId}" />
                
                <!-- Clé Etrangère -->
                <h:outputText value="Id feuille temps :" />
                <h:outputText value="#{projetMB.selectedProjet.feuilleTemps.idFT}" />               
             
             <br/>
           </p:panelGrid> 
           </div>
           
           <!-- HERE I WANT TO EXPORT THE DATA -->
            <p:commandButton ajax="false" icon="fa fa-file-text"  value="Export" 
       style="background-color:#c0d4f9; font-size:14px;"> 
       <p:dataExporter type="pdf" target="tbl" fileName="DetailsProjets" selectionOnly="true"
                options="#{projetMB.pdfOpt}" /> 
      </p:commandButton>
      
      
       </p:outputPanel>
    </p:dialog>


kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

26 Feb 2019, 19:03

superjony wrote:
26 Feb 2019, 15:59
but it's not working
This is how an enduser would describe it. As a developer you can (and should) investigate and debug more.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 48 guests