【问题标题】:Primefaces dataexporter with ui:repeat带有 ui:repeat 的 Primefaces 数据导出器
【发布时间】:2013-07-17 20:25:22
【问题描述】:

大家好,我正在尝试使用多个带有自己的“导出”按钮的表,我使用 ui:repeat 标签生成所有数据表,问题是我需要将表的 ID 放在数据导出器的目标中属性,并且由于在 JSF 中您无法动态生成 ID,因此我无法区分数据表,它们都具有相同的 ID :( :

<ui:repeat var="location" value="#{locationOwner.locations}"
                varStatus="status">


                    <h2>
                        Localidad:
                        <h:outputText value="#{location.name}" />
                    </h2>

                    <h:commandLink>
                        <p:graphicImage value="resources/images/excel.png" />
                        <h:outputLabel>Exportar</h:outputLabel>
                        <p:dataExporter type="xls" target="tablaExp"
                            fileName="pedidosEnDisponibilidad#{location.name}" />
                    </h:commandLink>

                    <p:dataTable id="tablaExp" var="storeRequest"
                        value="#{location.userRequests}">

                        <p:column>
                            <f:facet name="header">Nombre del cliente</f:facet>
                            <h:outputText value="#{storeRequest.clientName}" />
                        </p:column>

                        <p:column>
                            <f:facet name="header">Email del cliente</f:facet>
                            <h:outputText value="#{storeRequest.clientEmail}" />
                        </p:column>

                        <p:column>
                            <f:facet name="header">Número del cliente</f:facet>
                            <h:outputText value="#{storeRequest.clientNumber}" />
                        </p:column>

                        <p:column>
                            <f:facet name="header">Equipo</f:facet>
                            <h:outputText value="#{storeRequest.equipo.productName}" />
                        </p:column>

                        <p:column>
                            <f:facet name="header">Método de contacto</f:facet>
                            <h:outputText value="#{storeRequest.contactMethod}" />
                        </p:column>

                        <p:column>
                            <f:facet name="header">Fecha del pedido</f:facet>
                            <h:outputText value="#{storeRequest.requestedDate}" />
                        </p:column>


                    </p:dataTable>

            </ui:repeat>

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    我猜你可以使用&lt;ui:repeat&gt; 的“状态”变量并使用索引。

    例如:

    <h:commandLink>
        <p:dataExporter type="xls" target="tablaExp#{status.index}" ... />
    </h:commandLink>
    
    <p:dataTable id="tablaExp#{status.index}" ...>
    

    请参阅http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/ui/repeat.html 了解更多信息。

    【讨论】:

    • 我这样做了,但是当您单击commandLink 导出时出现错误,提示未找到id“tablaExp”,进一步搜索我发现在jsf 中您无法动态创建ID ,它将忽略动态部分。
    • 嗯,我也做过类似的事情。我显然已经动态设置了 ID。我正在使用 JSF + Facelets。不知道为什么它不起作用!
    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 2012-06-06
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    相关资源
    最近更新 更多