【问题标题】:dataExporter (Excel and CSV) not exporting the dataTableCommandLink values - PrimesFaces and JSFdataExporter(Excel 和 CSV)不导出 dataTableCommandLink 值 - PrimesFaces 和 JSF
【发布时间】:2020-12-29 09:10:42
【问题描述】:

我在数据表中有几列动态显示列名和行值。 但是数据表中的第一列具有链接的值。当我们单击该值时,它会重定向到其他屏幕。

问题在于我们导出 csv/excel 报告时。具有此超链接的第一列未显示确切值。它在excel中显示如下

org.primefaces.component.column.Column@72d586ad - 而不是像“S123456789”这样的精确值

请建议如何在 excel 和 csv 中显示确切的值。

<p:column headerText="#{msg['column.header']}" width="100" styleClass="columnLeft" filterBy="#{sampleDTO.linkNum}" sortBy="#{sampleDTO.linkNum}" id="linkNum">
                            
 <e:dataTableCommandLink id="viewTestLink" index="#{index}" value="#{sampleDTO.linkNum}" bean="#{sampleListBean}" action="viewLinkViewer"
                                                    ajax="false" currentDto="#{sampleDTO}"/>

列>

提前致谢 尼西恩K

【问题讨论】:

  • 什么版本的PF?我觉得这个问题很久以前就解决了?
  • 它的 6.2 版本
  • 我使用的是 PF 7.0,我的专栏有 &lt;p:link id="lnkUrl" href="#{splunkUrlProvider.getSplunkUrl(row)}" value="#{row.eventCorrelation}" target="_splunk" /&gt;,它导出为 value 中的值。
  • 这将在 7 版本中工作,即使我在论坛中阅读。但在 6.2 中仍然是同样的问题。还有其他解决方法吗?
  • 你能在你的问题上发布你确切的&lt;p:column代码吗?

标签: jsf datatable primefaces export lazy-loading


【解决方案1】:

好吧,它发生的原因是因为您使用的是自定义组件&lt;e:dataTableCommandLink,这就是它无法确定要显示什么文本的原因。

这就是我会使用ExportFunction...

  1. 创建自定义导出器 我的示例使用 CDI。
@Named
@ApplicationScoped
public class PassthroughColumnExporter {

   public String export(final UIColumn column) {
      String value = StringUtils.EMPTY;
      for (final UIComponent child : column.getChildren()) {
         final Object exportValue = child.getAttributes().get("data-export");
         if (exportValue != null) {
            value = String.valueOf(exportValue);
            break;
         }
      }

      return value;
   }
}
  1. 在您的 XHTML 中,使用此自定义导出器导出您想要查找 data-export 属性的值。
<p:column exportFunction="#{passthroughColumnExporter.export}">
    <e:dataTableCommandLink value="#{row.displayValue}" data-export="#{row.exportValue}" />                 
</p:column>

【讨论】:

  • 您好感谢代码共享,我已经添加了上面的代码,但是当我尝试点击 excel 图标时,它甚至没有点击我的 PassthroughColumnExporter- 导出方法。我们需要在这个包 org.primefaces.extensions.component.exporter 中添加这个 Custom Exported 吗?我已经在这个包的外面和里面添加了,仍然没有命中这个导出方法。如果我需要添加任何东西,请告诉我
  • 好吧,#{passthroughColumnExporter.export} 必须是一个可访问的 bean。我使用 CDI,这就是为什么我使用 @Named 不确定您使用的是托管 bean 还是什么。
  • 我已经给了你工具,现在由你来调试并找出什么是不工作的。
猜你喜欢
  • 2014-09-29
  • 2012-09-24
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 2012-12-19
相关资源
最近更新 更多