Primefaces数据导出器无法正常工作

时间:2016-09-20 01:31:31

标签: jsf primefaces

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>

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。这是因为渲染=&#34;#{tardinessBacking.showTable}&#34;我放入了datatable标签。我意识到在导出任何数据之前应该预先渲染数据表。