文本控件未正确更新javascript
我在页面中动态生成一个javascript块,结果如下所示:文本控件未正确更新javascript,javascript,asp.net,google-visualization,Javascript,Asp.net,Google Visualization,我在页面中动态生成一个javascript块,结果如下所示: <script> google.load('visualization', '1', {'packages': ['corechart']}); function drawincomingCalls() { var data = google.visualization.arrayToDataTable([ ['Call Type', 'Call Amount'], ['Voice
<script>
google.load('visualization', '1', {'packages': ['corechart']});
function drawincomingCalls() {
var data = google.visualization.arrayToDataTable([
['Call Type', 'Call Amount'],
['Voicemail', 12],
['Live Transfer', 23]
]);
var options = {
title: 'Incoming Calls',
pieHole: 0.4
};
var chart = new google.visualization.PieChart(document.getElementById('incomingCallsChart'));
chart.draw(data, options);
console.log(data);
}
</script>
load('visualization','1',{'packages':['corechart']});
函数drawincomingCalls(){
var data=google.visualization.arrayToDataTable([
[“通话类型”、“通话金额”],
[‘语音信箱’,12],
[“实时传输”,23]
]);
变量选项={
标题:“来电”,
孔:0.4
};
var chart=new google.visualization.PieChart(document.getElementById('incomingCallsChart');
图表绘制(数据、选项);
控制台日志(数据);
}
这是通过从SQL数据库检索信息,然后为此脚本设置literal
控件的文本属性(位于UpdatePanel
设置为始终更新的范围内)生成的
从那里,我通过ScriptManager.RegisterStartupScript调用drawincomingCalls()
;当IsPostBack
为true
时,我也会在页面加载时执行此操作
这很好用;但是,当我更改“日期范围”控件以引起回发并重新生成脚本时,没有任何更改。旧图表已呈现。我知道脚本正在重新生成,因为如果我创建第二个literal
控件并复制我正在执行的所有操作,但没有
标记,我可以读取纯文本中的更改,并看到值确实发生了更改
如代码片段所示,我已经将数据
记录到控制台,并且它也没有改变
同样:对两个不同的文本(一个带有
标记,另一个没有标记)执行相同的操作,一个可以正常更新,而实际的脚本则不能
如果我通过Chrome控制台运行原始javascript,它会正确更新
这里有什么明显的遗漏吗?用谷歌搜索ASP.NET Ajax为您创建的客户端pageLoad()
Javascript方法-这将在部分回发时触发,因此请将您的代码放在那里(重新)生成图表。希望此链接将帮助您的代码只在第一次工作。您必须让它知道ajax调用。比如在ajax响应上重新生成google图表。