我正在使用QJplot在XPages中绘制图表。它工作正常,直到我复制整个过程,即提取数据的按钮,绘制数据的按钮等。现在由于某种原因我不断收到一条错误,上面写着“更新部分页面时出错。$ is not not not一个功能。“当我在浏览器中进行预览并查看错误控制台时,会突出显示“$(document).ready(function(){”
在工作版本中,下面的代码是相同的,唯一的区别是从不同的视图中提取值。
`<xp:scriptBlock id="scriptBlock" rendered="true">
<xp:this.value>
<![CDATA[$(document).ready(function(){
var line1 = #{javascript:return compositeData.Temp};
var line2 = #{javascript:return compositeData.MaxTemp};
var line3 = #{javascript:return compositeData.MinTemp};
var ticks1 = #{javascript:return compositeData.Time};
var plot1 = $.jqplot('chart3', [line1,line2,line3], {
title: '#{javascript: return compositeData.title}',
animate:#{javascript:return compositeData.animated},
seriesDefaults: {
renderer: $.jqplot.LineRenderer,
rendererOptions:{lineMargin: 25},
pointLabels:{show:true, stackedValue: true}
},
series:[
{label:'#{javascript:return compositeData.legendTemp}'},
{label:'#{javascript:return compositeData.legendMaxTemp}'},
{label:'#{javascript:return compositeData.legendMinTemp}'},
],
legend: {
show: #{javascript:return compositeData.legendShow},
placement: '#{javascript:return compositeData.legendPlacement}'
},
axes: {
xaxis:{
label: "Time (min)",
pad: 0,
renderer:$.jqplot.CategoryAxisRenderer,
ticks: ticks1
},
yaxis:{
label: "Temperature (Deg. C)"
}
}
});
});
]]>
</xp:this.value>
</xp:scriptBlock>`
从视图中提取值的代码也在起作用。无法使用的按钮是应该绘制图形的按钮。
<xp:button
value="Replot Chart" id="refresh_code_plot">
<xp:eventHandler
event="onclick" submit="true" refreshMode="partial"
refreshId="code_plot">
</xp:eventHandler>
</xp:button>
code_plot是包含scriptBlock的自定义控件。它通过此代码链接到XPages
<xc:code_plot
id="code_plot" legendMaxTemp="Upper Threshold"
legendMinTemp="Lower Threshold" legendTemp="Data"
title="Logger Data (Temperature)" cssStyle="width:900px;">
<xc:this.animated><![CDATA[#{javascript:getComponent("animated").getValue();}]]></xc:this.animated>
<xc:this.Temp><![CDATA[#{javascript:getComponent("extracted_Temp").getValue();}]]></xc:this.Temp>
<xc:this.MaxTemp><![CDATA[#{javascript:getComponent("extracted_MaxTemp").getValue();}]]></xc:this.MaxTemp>
<xc:this.MinTemp><![CDATA[#{javascript:getComponent("extracted_MinTemp").getValue();}]]></xc:this.MinTemp>
<xc:this.legendShow><![CDATA[#{javascript:"true";}]]></xc:this.legendShow>
<xc:this.stackedSeries><![CDATA[#{javascript:getComponent("stackSeries").getValue();}]]></xc:this.stackedSeries>
<xc:this.ticks><![CDATA[#{javascript:getComponent("extracted_Time").getValue();}]]></xc:this.ticks>
<xc:this.Time><![CDATA[#{javascript:getComponent("extracted_Time").getValue();}]]></xc:this.Time>
<xc:this.legendPlacement><![CDATA[#{javascript:getComponent("extracted_Time").getValue()}]]></xc:this.legendPlacement>
</xc:code_plot>
这有什么明显的错误吗?
答案 0 :(得分:2)
似乎你确实错过了你的jquery链接。还简化:
旧:
{label:'#{javascript:return compositeData.legendTemp}'}
新:
{label:'#{compositeData.legendTemp}'}
答案 1 :(得分:1)
你是否在主页上包含了jQuery?它无法识别其命名空间。
答案 2 :(得分:0)
我修复了这个错误。因为我使用不同的自定义控件,所以我没有在自定义属性中定义一个或两个变量,这就是为什么负责绘制图形的按钮不起作用的原因。我遇到的另一个问题是extract_Data ids。它区分大小写,当我转移按钮等时。某些ID的情况发生了变化。