我在两个场景下有这个代码。一个是在 html 加载,第二个是在下拉项更改。页面加载场景是没有 ajax 调用的相同代码。下拉场景是使用 Ajax 调用,如下面的代码所述。
页面加载方案没有给出任何错误并正确显示条形图。dropwdown Ajax 场景给了我这个错误“No data to Plot”
$.jqplot.config.enablePlugins = true;
$("#CategoryList").change(function () {
var url = '<%= Url.Content("~/") %>' + "Home/GetExpenseSummaryByMonthByCategoryID";
var ddlsource = $("#CategoryList").val();
$.getJSON(url, { CatID: ddlsource }, function (data) {
var label = 'Test Control';
var ticksString = '<%=((List<TPS.PFM.Application.Contract.DataTransferObjects.BarChartDTO>)ViewData["BarCharts"])[1].Ticks%>'.split(',');
data2[1] = new Array();
data3[1] = new Array();
$.each(data, function (index, optionData) {
data2[1].push(optionData.Value);
data3[1].push(optionData.Name);
});
try {
plot1 = $.jqplot('BarChartControl3', data2[1], {
title: label,
animate: true,
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
pointLabels: {
show: true
},
rendererOptions: { fillToZero: true }
},
series: getLabels(data3[1]),
legend: {
show: true,
placement: 'outsideGrid'
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticksString
},
yaxis: {
tickOptions: { formatString: 'Rs%d' }
}
}
});
}
catch (Err) {
alert(Err.message);
}
});
});
我很困惑。因为页面加载上的相同代码成功显示了条形图。但是使用 ajax 调用它不会刷新条形图。分别push data2和data3后,它们在alerting上的确切内容是:- data2[1]数据是这样的:- 0,0,0,0,1000,0,0,0,0,0,2010,0 data3 [1] 数据是这样的:- 一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月
我检查了ajax调用。数据成功返回。