Google 可视化和 ASP 更新面板
我正在尝试通过 google 可视化构建一个组织结构图,该组织结构图通过使用 ASP 更新面板的 AJAX 调用进行更新。然而,图表并没有在 ajax 更新时刷新,而是消失了。有人有什么想法吗?谢谢
<input type="button" id="cmdUpdate" onclick="__doPostBack('panel', '');" value="Update" />
<div id="divGChart" runat="server" style="width: 100%; overflow: auto;">
<asp:UpdatePanel id="panel" runat="server" >
<ContentTemplate>
<div id="chart_div" runat="server" >
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', { packages: ['orgchart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('string', 'Manager');
data.addColumn('string', 'ToolTip');
data.addRows([
[{ v: '10131', f: '10131'}, '', '10131'],
[{ v: '10132', f: '10132'}, '10131', '10132'],
[{ v: '10133', f: '10133'}, '10131', '10133'],
[{ v: '10134', f: '10134'}, '10131', '10134']
);
var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
chart.draw(data, {allowCollapse: true, allowHtml: true});
}
</script>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
I'm attempting to build an org chart via google visualization that updates through AJAX calls using an ASP Update panel. However, instead of the chart refreshing on the ajax update, the chart just disappears. Anybody have any ideas? Thanks
<input type="button" id="cmdUpdate" onclick="__doPostBack('panel', '');" value="Update" />
<div id="divGChart" runat="server" style="width: 100%; overflow: auto;">
<asp:UpdatePanel id="panel" runat="server" >
<ContentTemplate>
<div id="chart_div" runat="server" >
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', { packages: ['orgchart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('string', 'Manager');
data.addColumn('string', 'ToolTip');
data.addRows([
[{ v: '10131', f: '10131'}, '', '10131'],
[{ v: '10132', f: '10132'}, '10131', '10132'],
[{ v: '10133', f: '10133'}, '10131', '10133'],
[{ v: '10134', f: '10134'}, '10131', '10134']
);
var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
chart.draw(data, {allowCollapse: true, allowHtml: true});
}
</script>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不知道您是否仍然遇到问题,但这可能对其将来的其他人有帮助。
这显然是一个已知的错误,已在 1.1 版本中修复
您需要做的就是更改
为
Dont know if you still have an issue with this, but it might be helpful for others in the future.
This is apparently a known bug that has been fixed in version 1.1
all you need to do is to change
to
使用
pageLoad()
重新初始化您的脚本,同时将您的jsapi
脚本引用移到UpdatePanel
之外,无需在每个部分重新加载该脚本回发:Use
pageLoad()
to re-initialize your script, also move yourjsapi
script reference outside theUpdatePanel
, no need to reload that on every partial postback: