【问题标题】:How to export a data table as different from the UI in JSF Primefaces?如何导出与 JSF Primefaces 中的 UI 不同的数据表?
【发布时间】:2015-08-04 06:21:31
【问题描述】:

我有一个数据表,我想导出为不同于 UI 的数据表。

比如我的部分数据表是

<p:column sortBy="#{phi.patProtein}" width="130">
    <f:facet name="header">
        <h:outputText value="Pathogen Protein" />
    </f:facet>

    <h:outputText id="patProteinText" value="#{phi.patProtein}" />
    <p:commandLink id="patBtn" value="[+]" type="button" />
    <p:overlayPanel for="patBtn" hideEffect="fade" dynamic="true"">
        <h:outputText value="#{phi.patProteinLong}"/>
    </p:overlayPanel>
</p:column>

我只想从列中导出输出文本 ("#{phi.patProtein}"),而不是命令链接 ("[+]") 和覆盖面板。但是 Primefaces 导出列中的所有内容,并没有让我有机会指定要导出的列的哪些字段。

我该怎么做?

【问题讨论】:

  • 您是否查看过 PrimeFaces 展示和文档? primefaces.org/showcase/ui/data/dataexporter/…。你的代码不是 100% 的样子,但如果它有效,它就有效
  • 是的,我已经多次检查文档,但找不到任何解决问题的方法。
  • 但是如果你稍微改变你的代码(将命令按钮放在不同的列中)它就可以工作......
  • 使用 PrimeFaces DataExporter 的另一种方法是通过从数据库中获取数据直接在后端创建表,为您提供更大的灵活性来制作导出的文件,完全符合您的要求是。

标签: jsf primefaces


【解决方案1】:

如果创建两个&lt;p:column&gt;s,一个包含&lt;h:outputText&gt;,另一个包含&lt;p:commandLink&gt;&lt;p:overlaypanel&gt;,则可以将第二列的属性"exportable"设置为false

<p:column sortBy="#{phi.patProtein}" width="130">
    <f:facet name="header">
        <h:outputText value="Pathogen Protein" />    
    </f:facet>
    <h:outputText id="patProteinText" value="#{phi.patProtein}" />
</p:column>
<p:column exportable="false">   
    <p:commandLink id="patBtn" value="[+]" type="button" />
    <p:overlayPanel for="patBtn" hideEffect="fade" dynamic="true"">
       <h:outputText value="#{phi.patProteinLong}"/>
    </p:overlayPanel>
</p:column>

那么只有文本应该被导出。

【讨论】:

  • 谢谢。但这是一个微不足道的解决方案。我不想创建更改原始 UI 的新列。基本上,我的问题是“如何在不更改 UI 的情况下做到这一点?”。
  • 总有办法摆弄 css(dataTable 的列类)以使其看起来相同。否则你将不得不弄乱primefaces组件的内部。
  • 最后,我的问题在做了一些 css 技巧后得到了解决。虽然和原来的 UI 不完全一样,但现在看起来还不错。再次感谢。
  • @nskarakoc 你能给出你解决这个问题的css代码吗?我面临着类似的问题
猜你喜欢
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 2012-11-22
  • 1970-01-01
  • 2018-02-06
  • 2011-12-13
  • 2013-06-21
相关资源
最近更新 更多