2013-07-30 48 views
0

我正在使用PrimeFaces 3.2並希望將動態創建的表導出爲.xls文件。當我點擊導出時,似乎沒有任何事情發生。PrimeFaces 3.2 dataExporter不工作

導出代碼

<h:commandLink id="Download_Excel_Format" ajax="false"> 
<p:graphicImage value="/resources/Excel_Icon.jpg" height="25" width="25" /> 
<p:dataExporter type="xls" target="dataTable" fileName="SomeFileName"/> 
</h:commandLink> 

的dataTable

<p:dataTable id="dataTable" var="c" value="#{databaseSearch.customerList}" 
            paginator="true" rows="10" paginatorAlwaysVisible="false" 
            paginatorTemplate="Page {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Rows per page {RowsPerPageDropdown}" 
            rowsPerPageTemplate="5,10,15,30"> 

          <p:column> 
           <f:facet name="header"> 
            <h:outputText value="Machine" /> 
           </f:facet> 
           <p:commandButton id="basic" value="#{c.machine}" action="#{updateEntry.setMachine(c.machine)}" oncomplete="dlg1.show();" styleClass="ui-Machinebutton" update=":Update_Entry"/> 
           <p:tooltip for="basic" value="Update/Delete Database Entry" showEffect="fade" hideEffect="fade" /> 

          </p:column> 

          <p:column> 
           <f:facet name="header"> 
            <h:outputText value="Company" /> 
           </f:facet> 
           <h:outputText value="#{c.company}" /> 
          </p:column> 

          <p:column> 
           <f:facet name="header"> 
            <h:outputText value="Contact" /> 
           </f:facet> 
           <h:outputText value="#{c.contact}" /> 
          </p:column> 

          <p:column> 
           <f:facet name="header"> 
            <h:outputText value="Phone" /> 
           </f:facet> 
           <h:outputText value="#{c.phone}" /> 
          </p:column> 

          <p:column> 
           <f:facet name="header"> 
            <h:outputText value="Email" /> 
           </f:facet> 
           <!-- <h:outputText value="#{c.email}" />--> 
           <h:outputLink value="mailto:#{c.email}?Subject=Baseline Monitor Alert | Machine : #{c.machine}">#{c.email}</h:outputLink> 
          </p:column> 

         </p:dataTable> 

兩個數據表和導出命令是一種形式中,然而數據表是在一個輸出面板(形式內) 。

<h:form prependId="false" id="Main_Form"> 
</h:form> 

輸出面板

<p:outputPanel id="panel" autoUpdate="false"> 
</p:outputPanel> 

我甚至更新到3.4.2 PrimeFaces看是否dataExporter會的工作,但無濟於事,因爲據我記得3.2有一個錯誤,如果dataTable動態生成列,但在這裏不是這樣的權利?難道我做錯了什麼?

dataExporter選項看起來簡單得多,但是如果有一個足夠簡單的替代方案,我爲此付出了努力。

更新

我使用的是GlassFish的3.1.2.2(建5)&的NetBeans 7.2.1,我沒有得到任何錯誤,只是頁面刷新的,有在年底以「#」 URL和停止,沒有錯誤意味着我不缺乏任何依賴關係...所以我迷失在這裏...

回答

0

好的,我找到了答案!整蠱一個雖然...我有一個ID =提交命令按鈕...重命名它,並做了詭計!

<p:commandButton id="xsubmit" icon="ui-icon-search" title="Search Database" update="panel" actionListener="#{databaseSearch.customerList}" /> 
+0

我面臨同樣的問題。我有一個只有數據導出器工作的項目。但是當我嘗試在我的主項目中實現它時,它不起作用。請幫幫我。我正在使用tabview,並在其中一個選項卡中具有數據表。 –

+0

@ArunRaja確保您擁有分配給您的按鈕的唯一ID。 –

+0

這些按鈕具有分配給它的唯一標識。我有一個用於數據表格數據輸入的選項卡,另一個選項卡用於顯示輸入的值。在提交時,我將這些值推送到數據庫並顯示數據庫中的值。如果我刪除代碼的數據輸入部分,那麼可以下載PDF格式的excel,否則只需單擊即可刷新頁面。 –