我在项目中使用<p:dataExporter type="xls" target="reportTable" fileName="ExportResult"/>
。我需要一些功能。
<p:panelGrid columns="1" styleClass="currentReportTablesStyle" style="text-align: center">
<p:commandButton value="Load Data"
id="dataLoaderButton"
ajax="false"
action="#{QCforCCReportBean.LoadReport()}"/>
<h:outputText value="Export to format:"/>
<h:commandLink disabled="#{QCforCCReportBean.isNotAdministrator}">
<p:graphicImage name="/images/xls_file.png" width="24"/>
<p:dataExporter type="xls" target="reportTable" fileName="ExportResult"/>
</h:commandLink>
</p:panelGrid>
当我点击命令按钮 - 导出数据的“加载数据”时,来自"#{QCforCCReportBean.LoadReport()}"
的触发方法。此方法在参数中有两个变量:first和pageSize。我设置了变量0和50.它很酷。我有懒惰和好的分页。例如0-50,50-100,100-150等。
但是当我尝试导出数据时,触发了一些方法"#{QCforCCReportBean.LoadReport()}"
但是变量是0- 87587(或者是另一个大数字。表中的所有行)和我的java崩溃java.lang.OutOfMemoryError: GC overhead limit exceeded
我想要导出数据的覆盖方法或修改dataExporter按部件保存数据
答案 0 :(得分:0)
夸张PrimeFaces 5.2 Documentation states on page 132属性列表。其中之一是:
pageOnly 0 String Exports only current page instead of whole dataset
在第133页上,甚至有一个例子:
PageOnly
默认情况下,dataExporter适用于整个数据集,如果你这样做的话 比如只导出当前页面上显示的数据,将pageOnly设置为 真。
<p:dataExporter type="pdf" target="tableId" fileName="cars" pageOnly="true"/>