我需要在某种状态页面上显示很多图表。图表应分组在tabView
和accordionPanel
中。此设置适用于 PrimeFaces 2.2.1 。由于新版本的某些功能(并且因为图表不再是 Flash ),我正在尝试迁移到 PrimeFaces 3 (目前为3.0.M3)。< / p>
<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快照和延迟加载图表。它看起来像这样:
<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:accordionPanel
和p:tabView
,有onTabShow
属性,但我认为我需要p:tab
。或者是否可以通过widgetVar
和onTabShow
处理当前打开的标签的var
?
答案 0 :(得分:1)
primefaces项目负责人刚写了blog post说这应该在3.0.M4中修复:
我们很高兴分享即将推出的PrimeFaces 3.0.M4有一个通用的解决方案,所以在页面上你不需要处理这些,因为PrimeFaces为你处理这些。