我想在.NET 3.5下的VB.NET應用程序中使用JQPlot。在按鈕上單擊,使用jQuery,我試圖使用ASP.NET Webservices源文件(它是解決方案的一部分)使用JSON派生數據填充JQPlot圖表。JQPlot,JSON和'沒有指定數據'錯誤
JSON數據是由Web服務發送的,但是當它呈現給JQPlot時,我得到了由JQPlot代碼生成的javascript錯誤'No Data Specified'。
我的代碼清單如下:被點擊
代碼監聽按鈕:
$(document).ready(function() {
$('#<%=btnASMX1.ClientID%>').click(function() {
getElectricDataJSON();
return false;
});
});
了 '的document.ready' 功能外
Javascript代碼:
function ajaxDataRenderer() {
var ret = null;
$.ajax({
// have to use synchronous here, else the function
// will return before the data is fetched
async: false,
//url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: "AccountsService.asmx/GetJSONData",
data: "{AccountID: " + $('#<%= hiddenAccountID.ClientID%>').val() + " }",
dataType: "json",
success: function (response) {
var ret = response.d;
// The following two lines just display the JSON data for testing purposes
$('#<%=outputASMX.ClientID%>').empty();
$('#<%=outputASMX.ClientID%>').html("<div>" + ret + "</div>");
return ret;
},
error: function (request) {
$('#<%=outputASMX.ClientID%>').html("<div style='color:red;'>WEBSERVICE UNREACHABLE</div>");
}
});
return ret;
};
var jsonurl = "./jsondata.txt";
function getElectricDataJSON() {
var ret = ajaxDataRenderer();
var plot1 = $.jqplot('chart2', jsonurl, {
title: "AJAX JSON Data Renderer",
dataRenderer: ret, //$.jqplot.ciParser
dataRendererOptions: {
unusedOptionalUrl: jsonurl
}
});
}
JSON數據格式如下:
[ { "todate": "2013-09-23T00:00:00", "Bill": 7095.65 }, { "todate": "2013-08-22T00:00:00", "Bill": 1137.96 }, { "todate": "2013-07-24T00:00:00", "Bill": 220429.41 }, ... ]
任何幫助或建議,將不勝感激。
我的回答有幫助嗎?如果答案中的開頭句是非常直言,我很抱歉! –
@Fresh 看來我需要將Web服務發送的數據從字符串對象轉換爲JSON數組。在getElectricDataJSON()函數中'var ret = ajaxDataRenderer();'後,我插入'var ret = JSON.parse(ret);'然後 //現在將所需數據推送到JSON數組對象中 var sampleData = [],item; (key,value){data.todate,parseFloat(value.Bill.replace(/,/ g,「」))]);; }); – normality2000