我使用Primefaces 5.3並試圖允許用戶通過單擊相應的圖例項目來打開和關閉系列。切換餅圖系列p:圖表
由於primefaces 5.3在jqplot.txt
中不包含EnhancedPieLegendRenderer
,我在resources/js中手動添加了它並將其導入到我的項目中。我的擴展程序的代碼位於同一目錄中的一個名爲charts.js
的文件中。
在我.xhtml文件我帶來的文件,像這樣
<ui:composition template="/templates/template.xhtml">
<ui:define name="body">
<h:outputScript name="js/jqplot.pieRenderer.js"/>
<h:outputScript name="js/extendedPieRenderer.js"/>
<h:outputScript name="js/jqplot.enhancedPieLegendRenderer.js"/>
<h:outputScript name="js/charts.js"/>
的XHTML的餅圖本身看起來像
<p:chart id="outboundLanChart"
type="pie"
model="#{foo.bar}"/>
沒有什麼特別之處底層PieChartModel
對象或支持bean而且一切都很好。在init方法,該方法被調用,當用戶瀏覽到的頁面我設置的對象bar.setExtender("extnd");
的擴展在charts.js我
function extnd() {
this.cfg.seriesDefaults = {
renderer: $.jqplot.PieRenderer
}
this.cfg.legend = {
renderer: $.jqplot.EnhancedPieLegendRenderer,
show: true,
rendererOptions: {
seriesToggle: 'normal',
seriesToggleReplot: true
}
}
}
我知道,擴展器因爲我的熒光筆配置完全符合我的預期(我沒有包括那段代碼,因爲它與問題無關)。對this.cfg.legend
的console.log
檢查表明它不使用EnhancedPieLegendRenderer
作爲legend.renderer
屬性。到目前爲止,谷歌,StackOverflow,primefaces論壇以及各種文檔和源代碼都沒有取得任何好的結果。 是否有可能讓primefaces使用EnhancedPieLegendRenderer或者是否有另一種更適當的Primefaces方式允許用戶在餅圖上或餅圖中切換系列?
更新:在Kukeltje的建議我包括pieRenderer
和extendedPieRenderer
插件,並相應地更新我的js代碼。這可能是一個問題,但它不是問題,問題仍然存在。
感謝您的回答我想我過去看的東西很明顯。我包括那個和餅圖渲染器和擴展的餅圖渲染器插件並更新了我的js代碼,但問題仍然存在。 –
然後檢查它是否可以用普通的jqplot – Kukeltje
我做到了。當我在JFiddle中測試時,我的設置正常工作。 HTTP://的jsfiddle。net/19vzL5h2/79/ –