Primefaces ExcelExporter 与 CommandLinks
我有一个应用程序,其中包含 Primefaces 数据表中的命令链接。 commandLinks 链接到应用程序内的其他页面并传递参数。当我尝试使用 Primefaces 的 ExcelExporter 导出数据表时,生成的 .xls 文件包含 commandLink 的值属性,而不是嵌套在 commandLink 中的 outputText 的值属性。
dataTable 中的列代码:
<p:dataTable var="dataRow" id="myTable">
<p:column>
<f:facet name="header">
<h:outputText value="MyColumn" />
</f:facet>
<h:outputLink value="myPage.xhtml">
<f:param name="columnId" value="#{dataRow.columnId}" />
<h:outputText value="#{dataRow.columnName }" />
</h:outputLink>
</p:column>
</p:dataTable>
ExcelExporter 代码:
<h:commandLink>
<h:outputText value="Export" />
<p:dataExporter type="xls" target="myTable" fileName="tableResults"/>
</h:commandLink>
当我使用 ExcelExporter 导出表时,导出的数据是“myPage.xhtml”,而我希望它是“#{dataRow.columnId}”中包含的数据。有没有办法格式化链接,以便它们与我想要的文本一起导出?
I have an application that contains commandLinks within a Primefaces dataTable. The commandLinks link to other pages within the application and pass parameters. When I try to export the dataTable using Primefaces' ExcelExporter, the generated .xls file contains the value attribute for the commandLink, not the value attribute for the outputText nested within the commandLink.
Column within dataTable code:
<p:dataTable var="dataRow" id="myTable">
<p:column>
<f:facet name="header">
<h:outputText value="MyColumn" />
</f:facet>
<h:outputLink value="myPage.xhtml">
<f:param name="columnId" value="#{dataRow.columnId}" />
<h:outputText value="#{dataRow.columnName }" />
</h:outputLink>
</p:column>
</p:dataTable>
ExcelExporter code:
<h:commandLink>
<h:outputText value="Export" />
<p:dataExporter type="xls" target="myTable" fileName="tableResults"/>
</h:commandLink>
When I export the table using the ExcelExporter, the exported data is "myPage.xhtml", when I want it to be the data contained in "#{dataRow.columnId}". Is there a way to format the links so they are exported with the text that I want?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我能够通过更改 commandLinks 的链接来解决这个问题,其中的操作确定导航和 setPropertyActionListeners 来传递参数。看起来 PrimeFaces 总是从父组件获取值,所以这似乎是最好的解决方法。 dataExporter 代码保持不变。
修改后的xhtml代码:
导航规则添加到faces-config.xml:
I was able to solve this problem by changing the links to commandLinks with actions that determine navigation and setPropertyActionListeners to pass parameters. It looks like PrimeFaces always takes the value from the parent component, so this seemed to be the best workaround. The dataExporter code stayed the same.
Modified xhtml code:
Navigation rule added to faces-config.xml: