我有一个生成图表的报告。我正在显示有关预定义数据集的报告。
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 #"
}
});
}
答案 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
的属性。