剑道图表显示Google Chrome上的结果不正确。但是Firefox中的结果是否正确?

时间:2015-06-29 09:37:34

标签: c# jquery kendo-ui kendo-asp.net-mvc kendo-dataviz

我有一个生成图表的报告。我正在显示有关预定义数据集的报告。

Data In Chrome Data in Mozilla

First Image来自chrome browser.Second来自firefox.Firefox显示正确的数据。但铬显示不正确。你可以看到月订单。

我在StackOverflow中查看了This个问题。 我的结果与第一张图像相似。 有人提出这类问题吗?

  setDataSource: function (jsonData) {
            myDataSource = new kendo.data.DataSource({
                data: jsonData,
                group: [{ "field": "Series" }],
                sort: [{ "field": "Series", dir: "asc" },  { "field": "SortOrder", dir: "asc" }],
                schema: {
                    model: {
                        fields: {
                            Category: {
                                "type": "string"
                            },
                            Series: {
                                "type": "number"
                            },
                            Value: {
                                "type": "number"
                            }
                        }
                    }
                }
            });
        },

        setupChart: function (id) {
            $("#chart" + id).kendoChart({
                dataSource: myDataSource,
                title: {
                    text: "@Lables.LBL_PlanningProjection"
                },
                legend: {
                    position: "top"
                },
                chartArea: {
                    background: ""
                },
                seriesDefaults: {
                    type: "line"
                },
                series: [{
                    field: "Value"
                }],
                valueAxis: {
                    labels: {
                        format: "{0:N0}"
                    },
                    line: {
                        visible: true
                    },
                    majorUnit: 10000
                },
                categoryAxis: {
                    field: "Category",
                    labels: {
                        template: "#: value #",
                        rotation: 0
                    },
                    majorGridLines: {
                        visible: false
                    }
                },
                tooltip: {
                    visible: true,
                    format: "{0}",
                    template: "#= series.name #: #= value #"
                }
            });
        }

1 个答案:

答案 0 :(得分:2)

这是Chrome在Array.sort的实施过程中出现的问题; 您可以通过在此处显式排序数据源来修复它。

正如我在代码中看到的,这里有一个名为 SortOrder 的字段。我认为在原始代码中你得到了这个,使用该字段明确地对数据集进行排序。

检查您的Controller或后端代码,以便找到SortOrder属性。如果没有,您可以在后端逻辑中添加它,以根据月份顺序显式对数据集进行排序。

正如我所见,您无法通过添加以下行来进行明确排序。

 sort: [{ "field": "Series", dir: "asc" },  { "field": "Category", dir: "asc" }],

因为它会将您的数据集排序为第一张图像。

Apr , Aug, Dec , Feb , Jan , Jul , Jun, Mar , May, Nov , Oct, Sep

我认为这就是为什么原始代码有一个名为SortOrder的属性。