格式“数据”和“名称” highchart mvc asp.net

sa原

我在MVC应用程序中,无法在highchart中生成图表,我有这段代码

                   foreach (var item in query)
                {
                    object[] values = new object[3];
                    values[0] = i;
                    values[1] = Convert.ToDecimal(item.ini) ;
                    values[2] = Convert.ToDecimal(item.ir);

                    dataResult.Add(values);
                }

生成以下内容:

在此处输入图片说明

传递给返回此图表的json

在此处输入图片说明

我喜欢的是``IRI201308NF3''的值是该系列的名称,而其他两个值则是正确的图表。

在杰森之下

 $.getJSON("/GrafLev/GetDadosByGraficos", { parameter },
                function (data) {
                    var chart = new Highcharts.Chart({
                        chart: {
                            renderTo: 'container',
                            ignoreHiddenSeries: false
                        },
                        yAxis: {
                            title: {
                                text: 'Exchange rate'
                            },
                            plotLines: [{
                                value: limInferior,
                                color: 'green',
                                dashStyle: 'shortdash',
                                width: 2,
                                label: {
                                    text: 'Inferior'
                                }
                            }, {
                                value: limSuperior,
                                color: 'red',
                                dashStyle: 'shortdash',
                                width: 2,
                                label: {
                                    text: 'Superior'
                                }
                            }]
                        },
                        xAxis: {
                        },
                        series: [{ data: data }]
                    });
            });

我找到了这个示例,但是我无法格式化。唯一的事情是图形是一条线。

标记

读取Highcharts api,它的series参数正在寻找具有namedata属性的字典数组您正在向data属性传递混合数组。现在,您可以在javascript中重新设置响应JSON的格式,但我认为将JSON正确格式化为更加干净C#

Dictionary<string, object> dataResult = new Dictionary<string, object>();
dataResult["data"] = new List<object[]>();
dataResult["name"] = i;
foreach (var item in query)
{
    object[] values = new object[2];
    values[0] = Convert.ToDecimal(item.ini) ;
    values[1] = Convert.ToDecimal(item.ir);
    ((List<object[]>)dataResult["data"]).Add(values);
}

这将导致JSON如下所示:

{"data":[[0,0],[1,10],[2,20],[3,30],[4,40],[5,50],[6,60],[7,70],[8,80],[9,90]],"name":"Hi Mom"}

现在您应该很好地将其传递给series参数,如下所示:

series: [ data ]

请注意,此JSON仍返回单个系列。如果您需要返回多个系列,只需注释一下,然后我将修改代码。

编辑

对于多个系列,添加一个包含每个系列的外部列表Dictionary<string, object>

这是一个例子:

List<Dictionary<string, object>> dataResult = new List<Dictionary<string, object>>();
for (int i = 1; i <= 2; i++)
{
    Dictionary<string, object> aSeries = new Dictionary<string, object>();
    aSeries["data"] = new List<object[]>();
    aSeries["name"] = "Series " + i.ToString();

    for (int j = 0; j < 10; j++)
    {
        object[] values = new object[2];
        values[0] = j;
        values[1] = j * 10 * i;
        ((List<object[]>)aSeries["data"]).Add(values);
    }

    dataResult.Add(aSeries);
}

传递给Highcharts

series: data

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章