【问题标题】:Kendo Chart shows Incorrect results on Google Chrome. But correct result in Firefox?Kendo Chart 在 Google Chrome 上显示不正确的结果。但是 Firefox 中的结果正确吗?
【发布时间】:2015-06-29 09:37:33
【问题描述】:

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

第一张图片来自 chrome 浏览器。第二张图片来自 firefox。Firefox 显示正确的数据。但是chrome显示不正确。你可以看到月份顺序。

我在 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 #"
                }
            });
        }

【问题讨论】:

  • 我是否遗漏了一些明显的东西,还是 { "field": "SortOrder", dir: "asc" } 中的 SortOrder 未定义?从您链接到的线程来看,SortOrder 应该替换为 Category 或 Value。
  • 请将您的代码放入现场演示中,以便我们帮助处理。
  • @sculper,SortOrder 来自服务器端。
  • 如果我将 SortOrder 替换为 Category 它会按月份的字母顺序排序。

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


【解决方案1】:

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

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

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

正如我所见,您无法通过添加以下行在此处进行显式排序。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多