Primefaces 5.3数据导出器在我单击导出器按钮时没有显示任何事情。我有其他数据表与出口商,但这是唯一不起作用。
这是我的代码。
<p:dataTable id="tardinessTable" widgetVar="tardinessTableWV"
value="#{tardinessBacking.tardinessRecords}"
filteredValue="#{tardinessBacking.filteredTardinessRecords}"
var="tard" rendered="#{tardinessBacking.showTable}"
selection="#{tardinessBacking.selectedTardinessRecords}"
sortMode="multiple" rowKey="#{tard}" paginator="true">
<f:facet name="header">
<p:panelGrid styleClass="full-width">
<p:row>
<p:column style="width: 16%">
<p:commandButton value="Print Reminder" icon="ui-icon-print"
rendered="#{tardinessBacking.showTable}"
action="#{tardinessBacking.printReport(type)}" target="_blank"
ajax="false" update="@form" />
</p:column>
<p:column style="width: 27%; text-align: center">
<p:outputLabel style="padding-left: 10px"
value="Filter by number of occurence: " />
</p:column>
<p:column style="width: 7%; text-align: center">
<p:inputText value="#{tardinessBacking.filterOccurence}"
onkeyup="PF('tardinessTableWV').filter()">
<p:ajax event="change" global="false"></p:ajax>
</p:inputText>
</p:column>
<p:column style="width: 15%; text-align: center">
<p:outputLabel style="padding-left: 10px"
value="Filter by month: " />
</p:column>
<p:column style="width: 30%">
<p:selectOneMenu value="#{tardinessBacking.filterMonth}"
onchange="PF('tardinessTableWV').filter()">
<f:selectItem itemLabel="- Select Month - " itemValue=""
noSelectionOption="true" />
<f:selectItem itemLabel="January" itemValue="0" />
<f:selectItem itemLabel="Febuary" itemValue="1" />
<f:selectItem itemLabel="March" itemValue="2" />
<f:selectItem itemLabel="April" itemValue="3" />
<f:selectItem itemLabel="May" itemValue="4" />
<f:selectItem itemLabel="June" itemValue="5" />
<f:selectItem itemLabel="July" itemValue="6" />
<f:selectItem itemLabel="August" itemValue="7" />
<f:selectItem itemLabel="September" itemValue="8" />
<f:selectItem itemLabel="October" itemValue="9" />
<f:selectItem itemLabel="November" itemValue="10" />
<f:selectItem itemLabel="December" itemValue="11" />
</p:selectOneMenu>
</p:column>
</p:row>
</p:panelGrid>
</f:facet>
<ui:include src="/WEB-INF/common/exporters.xhtml">
<ui:param name="target" value="tardinessTable" />
<ui:param name="fileName" value="tardiness-report" />
</ui:include>
<p:column style="width:4%;text-align:center"
selectionMode="multiple" />
<p:column headerText="Name" sortBy="#{tard.fullName}"
filterBy="#{tard.month}"
filterFunction="#{tardinessBacking.filter}" style="width: 12%">
<h:outputText value="#{tard.fullName}"/>
</p:column>
<p:column sortBy="#{tard.month[0].count}" sortable="true"
headerText="Jan" style="width: 7%; text-align: center"
styleClass="#{tard.month[0].style}">
<h:outputText value="#{tard.month[0].count}"/>
</p:column>
<p:column sortBy="#{tard.month[1].count}" headerText="Feb"
style="width: 7%; text-align: center"
styleClass="#{tard.month[1].style}">
<h:outputText value="#{tard.month[1].count}"/>
</p:column>
<p:column sortBy="#{tard.month[2].count}" headerText="Mar"
style="width: 7%; text-align: center"
styleClass="#{tard.month[2].style}">
<h:outputText value="#{tard.month[2].count}"/>
</p:column>
<p:column sortBy="#{tard.month[3].count}" headerText="Apr"
style="width: 7%; text-align: center"
styleClass="#{tard.month[3].style}">
<h:outputText value="#{tard.month[3].count}"/>
</p:column>
<p:column sortBy="#{tard.month[4].count}" headerText="May"
style="width: 7%; text-align: center"
styleClass="#{tard.month[4].style}">
<h:outputText value="#{tard.month[4].count}"/>
</p:column>
<p:column sortBy="#{tard.month[5].count}" headerText="Jun"
style="width: 7%; text-align: center"
styleClass="#{tard.month[5].style}">
<h:outputText value="#{tard.month[5].count}"/>
</p:column>
<p:column sortBy="#{tard.month[6].count}" headerText="July"
style="width: 7%; text-align: center"
styleClass="#{tard.month[6].style}">
<h:outputText value="#{tard.month[6].count}"/>
</p:column>
<p:column sortBy="#{tard.month[7].count}" headerText="Aug"
style="width: 7%; text-align: center"
styleClass="#{tard.month[7].style}">
<h:outputText value="#{tard.month[7].count}"/>
</p:column>
<p:column sortBy="#{tard.month[8].count}" headerText="Sep"
style="width: 7%; text-align: center"
styleClass="#{tard.month[8].style}">
<h:outputText value="#{tard.month[8].count}"/>
</p:column>
<p:column sortBy="#{tard.month[9].count}" headerText="Oct"
style="width: 7%; text-align: center"
styleClass="#{tard.month[9].style}">
<h:outputText value="#{tard.month[9].count}"/>
</p:column>
<p:column sortBy="#{tard.month[10].count}" headerText="Nov"
style="width: 7%; text-align: center"
styleClass="#{tard.month[10].style}">
<h:outputText value="#{tard.month[10].count}"/>
</p:column>
<p:column sortBy="#{tard.month[11].count}" headerText="Dec"
style="width: 7%; text-align: center"
styleClass="#{tard.month[11].style}">
<h:outputText value="#{tard.month[11].count}"/>
</p:column>
</p:dataTable>
exporters.xhtml
<f:facet name="#{core.paginationExporter}">
<span class="right export"> <h:commandLink
title="Export to Excel">
<p:graphicImage library="images" name="export-xls.png" />
<p:dataExporter type="xls" target="#{target}" fileName="#{fileName}" />
</h:commandLink> <h:commandLink title="Export to PDF">
<p:graphicImage library="images" name="export-pdf.png" />
<p:dataExporter type="pdf" target="#{target}" fileName="#{fileName}" />
</h:commandLink> <h:commandLink title="Export to CSV">
<p:graphicImage library="images" name="export-csv.png" />
<p:dataExporter type="csv" target="#{target}" fileName="#{fileName}" />
</h:commandLink>
</span>
</f:facet>
答案 0 :(得分:0)
我已经弄清楚了。这是因为渲染=&#34;#{tardinessBacking.showTable}&#34;我放入了datatable标签。我意识到在导出任何数据之前应该预先渲染数据表。