2015-06-22 20 views
0

我有一个问题,图表不显示更新,但它显示,如果我刷新页面。Primefaces:图表不显示在阿贾克斯动态创建

<p:panel id="main"> 
     <p:commandbutton action="Somebeckbean"> 
     <p:panel id="something"> 
      <p:datatable rendered="#{mainController.tableRender}"> 
      </p:datatable> 
     </p:panel> 
     <p:panel id="keywordsBar">   
      <p:chart type="bar" rendered="#{mainController.keywordsBar}" 
      model="#{mainController.horizontalBarModel}" style="height:300px;width:100%;" styleClass="center"/> 

     </p:panel> 
</p:panel> 

当我点击按钮我填充数据表和条形图,我设置呈现为true,我更新主面板。

我的数据表被渲染并显示出来,但条形图没有显示出来,并且对此进行了渲染。

</div> 
    <script id="mainForm:j_idt109_s" type="text/javascript"> 
    $(function(){ 
     PrimeFaces.cw('Chart','widget_mainForm_j_idt109' {id:'mainForm:j_idt109',type:'bar',data:[[[9,1],[2,2],[2,3],[1,4],[1,5],[1,6],[1,7],[1,8],[1,9],[1,10],[1,11],[1,12],[1,13],[1,14],[1,15]]],title:"Keyword's occurrences",legendPosition:"e",axes:{xaxis: {label:"Occurrences",min:0,max:10,renderer:$.jqplot.LinearAxisRenderer,tickOptions:{angle:"0"}},yaxis: {label:"Keywords",renderer:$.jqplot.CategoryAxisRenderer,tickOptions:{angle:"0"}}},series:[{label:'null'}],ticks:["","Croatia","Zagreb","Accommodations","Attractions","Car Hire","Flights","Hotels","Hrvatska","News","Travel information","Zagreb City News","Zagreb Hotels","cities","city"],orientation:"horizontal",stackSeries:true,datatip:true},'charts');}); 
    </script> 
</div> 

我拿起这个错误:

Uncaught TypeError: Cannot read property 'LinearAxisRenderer' of undefined(anonymous function) @ (program):1bI.Callbacks.i @

如果我刷新页面,显示了吧。 THX

+0

你在哪里/如何更新数据表和图表组件? –

+0

在commandbutton上,我更新了whol主面板。试过它与backbean更新结果是一样的。 –

+0

但您的图表位于keywordsBar面板内?所以它不会得到更新... –

回答

2

我找到了解决办法here

这是primefaces针对此问题的官方回应。

只需在页面中添加这些行。

<h:outputScript name="charts/charts.js" library="primefaces" /> 
<h:outputStylesheet name="charts/charts.css" library="primefaces" /> 
+1

下一次,请在你的问题和mcve代码示例中更具体。你遗漏了重要的代码部分,因此它很难看到这是问题 – Kukeltje