我有两个场景下的代码。一个是html加载,第二个是下拉项目更改。页面加载场景是没有ajax调用的相同代码。下拉场景使用Ajax调用,如代码中所述下方。
页面加载方案不会给出任何错误并正确显示条形图。
下拉式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);
}
});
});
我很困惑。因为页面加载上的相同代码成功显示了barchart.But与ajax调用它没有刷新条形图。 在分别使用data2和data3之后,它们在警报上的确切内容是: - data2 [1]数据是这样的: - 0,0,0,0,1000,0,0,0,0,0,2010,0 data3 [1]数据是这样的: - 1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月
我检查了ajax调用。数据已成功返回。