Literal控件没有正确更新javascript

时间:2015-06-30 20:29:17

标签: javascript asp.net google-visualization

我在我的页面中动态生成一个javascript块,最终看起来像这样:

<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>

这是通过从SQL数据库中检索信息,然后将literal控件的文本属性(在UpdatePanel集内,以便始终更新)设置为此脚本生成的。

从那里,我通过drawincomingCalls()致电ScriptManager.RegisterStartupScript;当IsPostBacktrue时,我也会在页面加载时执行此操作。

这很好用;但是当我改变我的日期范围时#39;控件导致回发,然后重新生成脚本,没有任何变化。渲染旧图表。我知道脚本正在重新生成,因为如果我创建第二个literal控件并复制我正在做的所有内容但没有<script>标记,我可以用纯文本读取更改并查看价值确实发生了变化。

正如在代码段中看到的那样,我已将data记录到控制台,并且它也没有改变。

再次:对两个不同的文字进行相同的事情(一个有<script>个标签,一个没有),一个正在更新,而实际的脚本不是。

如果我通过Chrome控制台运行原始javascript,它会正确更新。

我有什么明显的失踪吗?

1 个答案:

答案 0 :(得分:0)

Google是ASP.NET Ajax为您创建的客户端pageLoad() Javascript方法 - 这将在部分回发时触发,因此请将代码放入(重新)生成图表。