【发布时间】:2015-01-26 12:20:37
【问题描述】:
我需要在 primefaces 中导出数据表行扩展,但我无法弄清楚。反正有这样做吗? 提前致谢。
【问题讨论】:
-
PF 版本? PF 导出器似乎不支持行扩展检查 this 并检查 Primefaces Extensions 似乎在某种程度上支持它
-
PF 版本为 5.0。感谢您的链接,它们将非常有用。
标签: jsf primefaces
我需要在 primefaces 中导出数据表行扩展,但我无法弄清楚。反正有这样做吗? 提前致谢。
【问题讨论】:
标签: jsf primefaces
您可以在没有其他 Java API 的情况下使用 rowExpansion 数据导出 PrimeFaces DataTable,或者您可以通过 Apache POI API 帮助在 ManagedBean 类上使用自定义导出方法。
这里的技巧是,将要导出的列添加到文件中,并将 visible=”false” 属性附加到这些列。 然后将 exportable=”false” 属性附加到 p:rowToggler 列。
因此,您不会看到数据表列,但会在导出的文件中看到这些列。
从here获得
<h:form id="myDtTblFrm">
<h:commandLink>
<img src="../ims/excel.png"/>
<p:dataExporter type="xlsx" target="myTbl" fileName="myExcelFile"/>
</h:commandLink>
<p:dataTable id="myTbl" var="item" value="#{myBean.list}">
<p:rowExpansion>
<p:panelGrid columns="2" columnClasses="label, value" style="width: 50%">
<h:outputText value="Column Header 04" />
<h:outputText value="#{item.property04}" />
<h:outputText value="Column Header 05" />
<h:outputText value="#{item.property05}" />
</p:panelGrid>
</p:rowExpansion>
<p:column exportable="false">
<p:rowToggler />
</p:column>
<p:column headerText="Colum01">
<p:outputLabel value="#{item.property01}" />
</p:column>
<p:column headerText="Column02" visible="false" >
<p:outputLabel value="#{item.property02}" />
</p:column>
<p:column headerText="colum03" >
<p:outputLabel value="#{item.property03}" />
</p:column>
<p:column headerText="colum04" style="display: none">
<p:outputLabel value="#{item.property04}" />
</p:column>
<p:column headerText="colum05" style="display: none">
<p:outputLabel value="#{item.property05}" />
</p:column>
</p:dataTable>
【讨论】: