【问题标题】:How to render a chart inside a tabView with PrimeFaces如何使用 PrimeFaces 在 tabView 内渲染图表
【发布时间】:2011-10-05 11:33:21
【问题描述】:

我需要在某种状态页面上显示很多图表。图表应分组为tabViewaccordionPanel。此设置适用于 PrimeFaces 2.2.1。由于新版本的某些功能(并且因为图表不再是 Flash),我正在尝试迁移到 PrimeFaces 3(目前为 3.0.M3)。

<p:tabView>  
  <p:tab title="One">  
    <p:pieChart value="#{myBean.myChartOne}" />
  </p:tab>
  <p:tab title="Two">  
    <p:pieChart value="#{myBean.myChartTwo}" />
  </p:tab>
</p:tabView>

使用 PrimeFaces 3,图表不会显示。有一个 bug report 描述了这个问题,并指出 3.0 M4 中的图表应该有延迟加载。

更新:

我现在使用 PrimeFaces 3.0 M4-snapshot 和延迟加载图表。它看起来像这样:

<p:tabView>  
      <p:tab>
        <p:accordionPanel>  
            <p:tab title="All time">  
                <p:commandButton value="load chart" type="button" onclick="onTimeChartAll.init(); buttonOnTimeChartAll.disable();"
                    widgetVar="buttonOnTimeChartAll"/>
                <p:pieChart value="#{myBean.onTimeChartAll}" lazy="true" 
                    widgetVar="onTimeChartAll" />
            </p:tab>
            <p:tab title="30 Days">  
                <p:commandButton value="load chart" type="button" onclick="onTimeChart30Days.init();buttonOnTimeChart30Days.disable();"
                    widgetVar="buttonOnTimeChart30Days"/>
                <p:pieChart value="#{myBean.onTimeChart30Days}" lazy="true" widgetVar="onTimeChart30Days" />
            </p:tab>
        </p:accordionPanel>
    </p:tab>
    [...] <!-- and so on -->
</p:tabView>

我可以打开一个选项卡并单击按钮来加载图表。现在我想找到一个解决方案,在打开选项卡时自动加载图表。打开选项卡时是否有自动加载图表的解决方案?对于p:accordionPanelp:tabView,有onTabShow 属性,但我认为p:tab 需要它。或者有没有可能通过onTabShowvar来解决当前打开的标签的widgetVar

【问题讨论】:

  • 只有一个想法:我曾经在显示图表时遇到问题,但仅限于 Webkit 浏览器(Chrome、Safari 等)。对我来说,使用&lt;f:view contentType="text/html"&gt; 很有帮助。不知道有没有关系,你可以试试看。
  • 这不是bug,而是隐藏容器和需要维度计算的这些组件的子组件的常见限制。当前的解决方法是使用惰性图表,类似于编辑器。
  • @CagatayCivici 根据错误报告,惰性图表在下一个里程碑版本中可用。这就是为什么我尝试使用最新的每晚。如何在当前版本中使用延迟加载?
  • @MattHandy 我不久前也偶然发现了这个。谢谢。

标签: java charts jsf-2 tabs primefaces


【解决方案1】:

primefaces 项目负责人刚刚写了一封 blog post 说这应该在 3.0.M4 中修复:

我们很高兴与大家分享即将推出的 PrimeFaces 3.0.M4 对此有一个通用的解决方案,因此您无需在页面上处理这些问题,因为 PrimeFaces 会在后台为您处理这些问题。

【讨论】:

  • 我也非常期待这个版本。虽然现在不是解决方案,但我很乐意接受您的回答:这将尽可能好。 :) 谢谢
猜你喜欢
  • 2016-04-26
  • 2015-12-20
  • 1970-01-01
  • 2020-11-28
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
相关资源
最近更新 更多