如何在Ajax更新后重新显示div(Highchart)

时间:2016-11-08 20:13:27

标签: ajax jsf highcharts

我有一个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对不起我的英语...

1 个答案:

答案 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的更新