asp.net - 带有 ajax 和 json 数据的 Highcharts 我做错了什么?

标签 asp.net json highcharts

几天来,我一直在尝试通过 ajax 使用 HighchartsJS 绘制一个简单的折线图。我曾尝试在他们的论坛上发帖,但帮助似乎进展缓慢。

我正在使用 ASP.NET 网络表单。

服务器端

<WebMethod(EnableSession:=True)> _
    Public Function getData() As String

        Dim dr As DataRepository = New DataRepository
        Dim data As List(Of ArrayList) = New List(Of ArrayList)

        For Each q In dr.getAllData()
            Dim a As New ArrayList
            Dim d As Date = q.DateTime
            a.Add(d.Ticks)
            a.Add(q.TotalRevenue)
            data.Add(a)
        Next

        Dim ser As Serie = New Serie(data)

        Dim str As String = JsonConvert.SerializeObject(ser)

        Return str

    End Function

这将返回以下 json 对象,请注意所有内容都用双引号引起来。

"{"data":
    [
        [634420512000000000,100000.0000],
        [634421376000000000,100086.0000],
        [634422240000000000,100171.0000],
        [634423104000000000,100257.0000]
    ]
}"

客户端我正在调用上面的函数并像这样渲染我的图表。

$(document).ready(function () {
    var options = {
        chart: {
            renderTo: 'container',
            defaultSeriesType: 'line'
        },
        title: {},
        xAxis: {
            type: 'datetime'
        },
        yAxis: {},
        series: []
    };

    $.ajax({
        type: "POST",
        dataType: "json",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        url: "_services/ScriptService.asmx/getData",
        success: function (items) {

            var obj = jsonParse(items.d);
            var series = { data: [] };

            $.each(obj, function (itemNo, item) {
                series.data.push(item);
            });

            options.series.push(series);

        },
        cache: false,
        error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); }
    });
    chart = new Highcharts.Chart(options);
});

上面调用中的'items'如下;

"{"data":
    [
        [634420512000000000,100000.0000],
        [634421376000000000,100086.0000],
        [634422240000000000,100171.0000],
        [634423104000000000,100257.0000]
    ]
}"

我使用 'jsonParser(items.d') 创建正确的 json 对象(删除双引号)。

“obj”现在包含我的 json 对象,在 firebug 中检查时“item”现在看起来像这样;

[
    [634420512000000000, 100000], 
    [634421376000000000, 100086], 
    [634422240000000000, 100171], 
    [634423104000000000, 100257]
]

当我的图表呈现时,这些点没有被绘制出来。我做错了什么?

解决了问题。

需要换行

series.data.push(obj.data);

到;

series.data = obj.data;

最佳答案

chart = new Highcharts.Chart(options); 放入 success 事件中。

关于asp.net - 带有 ajax 和 json 数据的 Highcharts 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242588/

相关文章:

asp.net - 扩展现有 ABP Controller

javascript - 将正则表达式应用于 javascript 中的 uri 变量

javascript - Highcharts 最小 y 轴值

JavaScript 导入 lit-element 在浏览器中出现 404 未找到错误

asp.net - 防止多线程网站消耗过多资源

asp.net - signalR - 如何从客户端调用服务器方法 - 代码不起作用

java - 将 Json 字符串转换为 Java 对象给出 null (null)

javascript - 使用 FS 读取字符串会返回此错误 : Unexpected token r in JSON at position 0

php - 线系列图在调整大小时出现错误 - highcharts

javascript - 如何在 Highcharts 饼图上设置系列标签的样式?