このコードは2つのシナリオで使用されています.1つはHTMLの読み込み、もう1つはドロップダウンアイテムの変更です。ページの読み込みのシナリオはajax呼び出しのない同じコードです。ドロップダウンのシナリオでは、以下のコードで説明されているようにAjax呼び出しを使用しています。
ページ読み込みシナリオではエラーは発生せず、棒グラフが正しく表示されます。ドロップダウンAjaxシナリオでは、「プロットするデータがありません」というエラーが表示されます。
$.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呼び出しでは、棒グラフが更新されません。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呼び出しを確認しました。データは正常に返されています。