【问题标题】:Customize export output format of p:dataTable自定义 p:dataTable 的导出输出格式
【发布时间】:2018-03-13 07:18:51
【问题描述】:

我有一个 Primefaces 数据表,其中一列包含三个输出文本和一个带有工具提示的命令按钮。该按钮的输出标签显示为

这是用于出口标签。这是针对 text.org.primefaces.component.commandbutton.CommandButton@3f60d3f9

如何不包含/打印带有工具提示的命令按钮以将数据表导出到 excel?

我无法将命令按钮移动到业务案例的新列。

【问题讨论】:

    标签: jsf primefaces datatable export


    【解决方案1】:

    作为@Kukeltje 回答的补充,我想提一下,您还可以指定自己的方法参数(而不是使用UIColumn):

    小脸:

    <p:column exportFunction="#{testView.exportBrand(car)}">
       <f:facet name="header">
           <h:outputText value="Brand" />
      </f:facet>
      <h:outputText value="#{car.brand}" />
    </p:column>
    

    支持 bean:

    public String exportBrand(Car car) {
        if (car == null) {
            return null;
        }
    
        return car.getBrand();
    }
    

    【讨论】:

    • 非常感谢,你拯救了我的一天;比使用带 UIColumn 参数的方法方便
    【解决方案2】:

    在 PrimeFaces 中,您可以使用 exportFunction 属性(在文档中)覆盖列 bij 的导出内容。如果您在文档中阅读此内容,您很容易通过使用 google 找到 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 循环中只导出您要导出的内容。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2010-12-13
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多