我正在使用Google图表显示我们正在投放的民意调查结果。我使用jQuery ajax调用(GET)来调用提交投票的ActionResult,然后返回带有Google图表的局部视图。
当通过jQuery加载HTML时,谷歌图表不会显示,但在页面加载时作为普通的RenderAction加载时工作正常。
任何人都可以解决一些问题,当通过jQuery加载时,是否需要加载必要的脚本?
非常感谢
对不起,伙计们应该提供更多细节:
$.ajax({
url: "Survey/RegisterAnswer",
type: 'POST',
data: {
surveyQuestionId: surveyID,
surveyAnswer: id
},
success: function (result) {
alert(result);
$('#survey-container').html(result).fadeIn("slow", function () {
});
}});
这一切都运行正常,并返回Html,因为我可以在警报中看到它,部分视图如下所示:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', { packages: ['corechart'] });
<%= Html.GoogleChart(ChartType.Pie, Model, "barChartDiv", Model.Data.First().Description, "Properties", "Total", 300, 250) %>
</script>
<h3>CHART</h3>
<div id="barChartDiv">
</div>
带有文本CHART的H3标题显示正常,但谷歌图表从不显示。如果可以在页面加载时使用相同的局部视图,那么就好像是从jQuery调用google图表时。
有什么想法?非常感谢。
答案 0 :(得分:0)
你没有展示你的代码,所以我们只能猜测,我的猜测是你的AJAX调用成功回调你可能忘了将返回的部分注入DOM:
$.ajax({
url: '/url_to_controller_action_that_will_return_a_partial',
type: 'POST',
success: function(result) {
// inject the result into the DOM:
$('#someElementId').html(result);
}
});