Javascript 图表js与asp.net的连接
我正在尝试在ASP.NET中使用图表js制作折线图,但这不起作用,在我尝试使用饼图之前,效果很好,但折线图不起作用,我认为响应不正确,因为控制台中显示未捕获的语法错误:意外标记:。 这是代码c:Javascript 图表js与asp.net的连接,javascript,c#,asp.net,charts,highcharts,Javascript,C#,Asp.net,Charts,Highcharts,我正在尝试在ASP.NET中使用图表js制作折线图,但这不起作用,在我尝试使用饼图之前,效果很好,但折线图不起作用,我认为响应不正确,因为控制台中显示未捕获的语法错误:意外标记:。 这是代码c: [WebMethod] public static string GetChart(string country) { StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.
[WebMethod]
public static string GetChart(string country)
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append("labels:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\"],");
sb.Append("datasets:[");
System.Threading.Thread.Sleep(50);
string color = "rgba(220,220,220,0.2)";
//
sb.Append("{");
sb.Append(string.Format("fillColor:\"{0}\", strokeColor:\"{1}\", pointColor:\"{2}\", pointStrokeColor:\"{3}\", data:{4}", color, "#ACC26D", "#fff", "#9DB86D", "[203,156,99,251,305,247]"));
//
sb.Append("}");
sb.Append("]");
sb.Append("};");
return sb.ToString();
}
这是Javascript:
<script type="text/javascript">
function LoadChart() {
var chartType = parseInt($("[id*=rblChartType] input:checked").val());
$.ajax({
type: "POST",
url: "inicioCliente.aspx/GetChart",
data: "{country: '" + $("[id*=ddlCountries]").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
$("#dvChart").html("");
$("#dvLegend").html("");
var data = eval((r.d));
var el = document.createElement('canvas');
$("#dvChart")[0].appendChild(el);
var ctx = el.getContext('2d');
var userStrengthsChart;
switch (chartType) {
case 1:
userStrengthsChart = new Chart(ctx).Line(data);
break;
case 2:
userStrengthsChart = new Chart(ctx).Doughnut(data);
break;
}
for (var i = 0; i < data.length; i++) {
var div = $("<div />");
div.css("margin-bottom", "10px");
div.html("<span style = 'display:inline-block;height:10px;width:10px;background-color:" + data[i].color + "'></span> " + data[i].text);
$("#dvLegend").append(div);
}
},
failure: function (response) {
alert('There was an error.');
}
});
}
$(function () {
LoadChart();
$("[id*=ddlCountries]").bind("change", function () {
LoadChart();
});
$("[id*=rblChartType] input").bind("click", function () {
LoadChart();
});
});
</script>
经过一段时间我找到了解决方案,问题出在eval方法上,我需要添加
var data = (eval("(" + r.d + ")"));
谢谢你能发布更多关于你收到的错误的信息吗?它说您在哪一行出现语法错误并将代码指向那一行。未捕获语法错误:意外标记:VM098响应:{labels:[一月、二月、三月、四月、五月、六月],数据集:[{fillColor:rgba220220,0.2,strokeColor:ACC26D,pointColor:fff,pointStrokeColor:9DB86D,data:[203156,99251305247]};我认为您应该阅读更多关于JSON的内容。所有字段名都应使用双引号:fillColor->fillColor。还要删除此行中不必要的分号:sb.Append};;->sb.Append};。如果这是有效的JSON,我建议从getChart测试您的数据。它有两个在线验证器,比如。