我有一个Highcharts工作正常,并且Primefaces PanelGrid工作正常,但我需要刷新或更新或调用Higcharts与按钮的更新事件。
代码:
<h:panelGrid id="pnlStatus" columns="2" >
<p:editor id="txtStatus" height="400" value="#{Reports.emailTxt}" style="width: 100%" />
<div id="chartEmailReport" style="width: 600px; height: 400px"></div>
</h:panelGrid>
<p:commandButton update="pnlStatus" value="Ver reporte" icon="ui-icon-document"
actionListener="#{Reports.emailStatusReport}"/>
当我按下commandButton时,Highcharts就消失了......
我需要使用commandButton的任何事件重新显示Higcharts。
更新:同样的情况发生在一个普通的jsf h:commandButton
里面有一个f:ajax
但是没有ajax,所以它似乎与ajax相关
Iam noob对不起我的英语...
答案 0 :(得分:1)
代替
<script src="resources/js/chartEmailReport.js">
使用Omnifaces onLoadScript标签
我将我的javascript内联到.xhtml文件中,因此它看起来像这样:
<o:onloadScript>
var chart1= new Highcharts.Chart( {
chart: {
renderTo: 'rollupId:rollup'
}
...
series : #{controller.chartData}
} );
</o:onloadScript>
也许你可以做
<o:onloadScript>
<h:outputScript name="js/chartEmailReport.js" />
</o:onloadScript>
然后,当您单击命令按钮更新JSF组件时,onloadScript还将触发javascript的更新