2016-09-09 2 views
2

J'ai un Datatable dans Primefaces avec un celleditor pour télécharger et télécharger des fichiers. Le téléchargement du fichier fonctionne. Le téléchargement du fichier ne fonctionne pas, il ne recharge que la page. Lorsque je mets le bouton de téléchargement directement sous la colonne p:, le téléchargement fonctionne. (Ainsi, le bouton de téléchargement est visible en mode édition)Primefaces filedownload dans celleditor Datatable ne fonctionne pas

Qu'est-ce qui ne va pas, des idées?

Voici mon code (simplifié):

<p:column headerText="Header"> 
    <!-- Download Button at this position works --> 
    <p:cellEditor> 
    <f:facet name="output"> 
     <p:commandButton id="download" value="Download" ajax="false"> 
     <p:fileDownload value="#{bean.downloadFile}" /> 
     </p:commandButton> 
    </f:facet> 
    <f:facet name="input"> 
     <p:fileUpload fileUploadListener="#{bean.uploadFile}" label="upload" mode="advanced" auto="true" process="@this" /> 
    </f:facet> 
    </p:cellEditor> 
</p:column> 

et le haricot géré:

import java.io.InputStream; 
import org.primefaces.model.DefaultStreamedContent; 
import org.primefaces.model.StreamedContent; 


public StreamedContent getDownloadFile() { 
    final InputStream stream = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/images/test.png"); 
    return new DefaultStreamedContent(stream, "image/png", "test.png"); 
} 

Répondre

0

Pas vraiment une solution, mais j'eu le même problème dans mon application et Il a résolu le problème en supprimant le composant de l'éditeur de cellules et en appelant les composants restants à s'afficher côte à côte (affichage: inline-block) pour fournir quelque chose d'agréable.