2013-07-18 4 views
1

Привет, ребята, я пытаюсь создать несколько таблиц со своей кнопкой «export», я генерирую все данные с помощью тегов ui: repeat, проблема в том, что мне нужно поставить идентификатор таблица в целевом атрибуте dataexporter и так как в JSF вы не можете создать идентификатор динамически Я не могу отличить DataTables, все они имеют одинаковый идентификатор :(:Основные данные dataexporter с помощью ui: repeat

<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> 

ответ

0

Я думаю, вы можете использовать «статус» переменная вашего <ui:repeat> и использовать индекс

Например:.

<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 для получения дополнительной информации.

+0

Я сделал это, но когда вы нажмете на командуLink, чтобы экспортировать ошибку, говоря, что идентификатор «tablaExp» не найден, поиск в дальнейшем я обнаружил, что в jsf вы не можете создавать идентификаторы динамически, он будет игнорировать динамическая часть. –

+0

Ну, я сделал то же самое. Я, очевидно, установил идентификаторы динамически. Я использовал JSF + Facelets. Не уверен, почему это не сработает! –

Смежные вопросы