2014-07-25 35 views
0

我正在使用此fileUpload從Excel工作表上載文檔。如何在p:fileUpload正在進行時顯示小工具

    <h:form id="leForm2" enctype="multipart/form-data"> 
         <p:fileUpload 
          mode="advanced" showButtons="FALSE" 
          label="{messages['upload.xls']}"              
          fileUploadListener="#{bean.handleFileUpload}"               
          id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true"                      
          allowTypes="/(\.|\/)(xls|xlsx)$/"/> 
         <p:growl id="messages3" escape="true" sticky="false" 
          lifetime="800" showDetail="false" />        
        </h:form> 

這個按預期工作。我的問題是我需要在上傳過程中顯示p:Dialog,而且我找不到這樣做的方式。

這是我的對話框:

<p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false"> 
    <p:graphicImage value="/images/ajaxloadingbar.gif" /> 
</p:dialog> 

我不知道該怎麼稱呼它或者:(任何建議

+0

對於clientSide行爲,PrimeFaces fileUpload具有'onstart','onerror'和'oncomplete'。你試過這個嗎?像'onstart =「PF('statusDialog')。show()」' – stg

+0

感謝您的迴應!試過了,但它沒有奏效。或者我做錯了什麼? –

+0

你正在使用什麼primefaces-version? – stg

回答

1
   <h:form id="leForm2" enctype="multipart/form-data"> 
        <p:fileUpload 
         mode="advanced" showButtons="FALSE" 
         label="{messages['upload.xls']}"              
         fileUploadListener="#{bean.handleFileUpload}"               
         id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true"                           onstart="statusDialog.show()" 
         allowTypes="/(\.|\/)(xls|xlsx)$/"/> 
        <p:growl id="messages3" escape="true" sticky="false" 
         lifetime="800" showDetail="false" />        
       </h:form> 

在bean.java我加入這一行的? handleFileUpload的末尾:

 RequestContext.getCurrentInstance().execute("widgetHide()"); 

widgetHide是一個JS函數:

<script type="text/javascript"> 
    function widgetHide() 
    {         
     statusDialog.hide();  
    } 

</script> 

如上所述,onstart和oncomplete應該做的伎倆,但由於某種原因oncomplete不起作用。所以我不得不做這個解決方案來使它工作。

相關問題