【发布时间】:2015-06-22 09:08:54
【问题描述】:
我有一个图表在更新时没有显示的问题,但如果我刷新页面,它就会显示。
<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>
我发现这个错误:
未捕获的类型错误:无法读取未定义(匿名函数)@(程序)的属性“LinearAxisRenderer”:1bI.Callbacks.i @
如果我刷新页面,会显示条形图。 谢谢
【问题讨论】:
-
您在哪里/如何更新数据表和图表组件?
-
在命令按钮上,我更新了整个主面板。用backbean更新试了一下,结果是一样的。
-
但是你的图表在keywordsBar面板里面?所以它不会得到更新...
-
那么一些面板内的数据表是怎么更新的呢?为什么更新条形图后会使用上面问题中显示的代码呈现?如果我刷新显示的页面栏并且没有进行 ajax 调用或更新?我认为更新不是问题,我缺少关于如何创建图表的问题:)
-
抱歉,您的代码格式看起来好像keywordBar 不在主面板内。我进行了编辑以使其更具可读性。当然更新不是这里的问题,但我很高兴你找到了解决方案:)
标签: primefaces