Salesforce:Javascript不想重新加载(经过chrome测试)
我遇到了一个我无法解决的问题。事实上,我有一个JS,其中有一个apex变量,我想重新渲染这个块,以获得新的值。我正在使用outputpanel,但不幸的是没有出现重新加载。我的代码如下Salesforce:Javascript不想重新加载(经过chrome测试),javascript,jquery,salesforce,refresh,rerender,Javascript,Jquery,Salesforce,Refresh,Rerender,我遇到了一个我无法解决的问题。事实上,我有一个JS,其中有一个apex变量,我想重新渲染这个块,以获得新的值。我正在使用outputpanel,但不幸的是没有出现重新加载。我的代码如下 <apex:commandButton value="button" id="theButton" action="{!setDataSet}" oncomplete="refreshMyChart()" rerender="jstorerender"/> <apex:outputpan
<apex:commandButton value="button" id="theButton" action="{!setDataSet}" oncomplete="refreshMyChart()" rerender="jstorerender"/>
<apex:outputpanel id="jstorerender">
<script type="text/javascript" >
$j = jQuery.noConflict();
var innerVar = '{!innerString}';
var covVar = '{!coverageAsCategorie}';
console.log("want to refreshINIT"+innerVar+covVar);
</script>
</apex:outputpanel>
$j=jQuery.noConflict();
var innerVar='{!innerString}';
var covVar='{!coverageAsCategorie}';
log(“想要刷新init”+innerVar+covVar);
“刷新我的图表”函数有点复杂,因此我将其放在另一个块中,因为我认为这不是问题的根源,因为重新渲染应该在oncomplete之前发生:
<script type="text/javascript">
function refreshMyChart(){
console.log("want to refreshINIT2"+innerVar+covVar);
var chart;
var colors = Highcharts.getOptions().colors;
var categories = ['{!coverageAsCategorie}'];
var name = 'Browser brands';
var data = ['{!innerString}'];
function setChart(options) {
chart.series[0].remove(false);
chart.addSeries({
type: options.type,
name: options.name,
data: options.data,
color: options.color || 'white'
}, false);
chart.xAxis[0].setCategories(options.categories, false);
chart.redraw();
};
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
inverted:true
},
title: {
text: 'Browser market share, April, 2011'
},
subtitle: {
text: 'Click the columns to view versions. Click again to view brands.'
},
xAxis: {
categories: categories
},
yAxis: {
title: {
text: 'Total percent market share'
}
},
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
var drilldown = this.drilldown;
var options;
if (drilldown) { // drill down
options = {
'name': drilldown.name,
'categories': drilldown.categories,
'data': drilldown.data,
'color': drilldown.color,
'type': 'columnrange',
};
} else { // restore
options = {
'name': name,
'categories': categories,
'data': data,
'type': 'pie'
};
}
setChart(options);
}
}
},
dataLabels: {
enabled: true,
color: colors[0],
style: {
fontWeight: 'bold'
},
formatter: function() {
return this.y +'%';
}
}
}
},
tooltip: {
formatter: function() {
var point = this.point,
s = this.x +':<b>'+ this.y +'% market share</b><br/>';
if (point.drilldown) {
s += 'Click to view '+ point.category +' versions';
} else {
s += 'Click to return to browser brands';
}
return s;
}
},
series: [{
type: 'pie',
name: name,
data: data,
color: 'white'
}],
exporting: {
enabled: false
}
});
};</script>
函数refreshMyChart(){
log(“想要刷新init2”+innerVar+covVar);
var图;
var colors=Highcharts.getOptions().colors;
变量类别=['{!coverageAsCategorie}'];
变量名称=‘浏览器品牌’;
变量数据=['{!innerString}'];
功能设置图(选项){
chart.series[0]。删除(false);
chart.addSeries({
type:options.type,
name:options.name,
数据:options.data,
颜色:选项。颜色| |“白色”
},假);
chart.xAxis[0].setCategories(options.categories,false);
chart.redraw();
};
图表=新的高点图表。图表({
图表:{
renderTo:'容器',
倒过来:是的
},
标题:{
文字:“浏览器市场份额,2011年4月”
},
副标题:{
文本:“单击列可查看版本。再次单击可查看品牌。”
},
xAxis:{
类别:类别
},
亚克斯:{
标题:{
文字:“总市场份额百分比”
}
},
打印选项:{
系列:{
光标:“指针”,
要点:{
活动:{
单击:函数(){
var drilldown=this.drilldown;
var期权;
如果(向下钻取){//向下钻取
选项={
'name':drilldown.name,
“类别”:深入查看.categories,
“数据”:drilldown.data,
'color':drilldown.color,
“类型”:“columnrange”,
};
}否则{//restore
选项={
“名称”:名称,
“类别”:类别,
“数据”:数据,
“type”:“pie”
};
}
设定图(选项);
}
}
},
数据标签:{
启用:对,
颜色:颜色[0],
风格:{
fontWeight:“粗体”
},
格式化程序:函数(){
返回这个.y+'%';
}
}
}
},
工具提示:{
格式化程序:函数(){
var点=此点,
s=此.x+':'+此.y+%市场份额
;
if(点向下钻取){
s+='点击查看'+point.category+'版本';
}否则{
s+='点击返回浏览器品牌';
}
返回s;
}
},
系列:[{
键入“pie”,
姓名:姓名,,
数据:数据,
颜色:“白色”
}],
出口:{
已启用:false
}
});
};
不管怎样,当我点击我的按钮时会发生什么
- 我的刷新函数中的console.log出现(我猜oncomplete事件已经触发)
- 我的outputpanel块中的console.log不显示。然后我认为rerender有问题。加上当页面加载时console.log是diplay,所以我不认为代码有任何问题
Thx guys:)从重新呈现的OutPanel内部调用refreshMyCart