我有一个Primefaces dataTable,其中一列有三个输出文本和一个带工具提示的命令按钮。出现按钮,输出标签为
这是出口标签。这是为text.org.primefaces.component.commandbutton.CommandButton@3f60d3f9
如何通过工具提示包含/打印此命令按钮以将dataTable导出为excel?
我无法将命令按钮移动到业务案例的新列。
在PrimeFaces中,您可以使用exportFunction属性(在文档中)覆盖列bij的导出内容。如果你在文档中看到这个,你很容易通过谷歌找到https://forum.primefaces.org/viewtopic.php?t=50284。在其中,给出了如何覆盖列的“导出值”的示例:
XHTML:
<p:column exportFunction="#{testView.exportBrand}">
<f:facet name="header">
<h:outputText value="Brand" />
</f:facet>
<h:outputText value="#{car.brand}" />
</p:column>
Java的:
public String exportBrand(UIColumn column) {
String value = "";
for(UIComponent child: column.getChildren()) {
if(child instanceof ValueHolder) {
value = ComponentUtils.getValueToRender(FacesContext.getCurrentInstance(), child);
}
}
return value + "_TEST";
}
只需将此扩展并在for循环中仅导出要导出的内容。
作为@Kukeltje的答案的补充,我想提一下你也可以指定你自己的方法参数(而不是使用UIColumn
):
的facelet:
<p:column exportFunction="#{testView.exportBrand(car)}">
<f:facet name="header">
<h:outputText value="Brand" />
</f:facet>
<h:outputText value="#{car.brand}" />
</p:column>
支持豆:
public String exportBrand(Car car) {
if (car == null) {
return null;
}
return car.getBrand();
}