Charts 未捕获类型错误:无法读取未定义(剑道图)的属性“长度”
我对剑道图有问题,当从控制器返回的项目列表没有项目时,我有一个错误:Charts 未捕获类型错误:无法读取未定义(剑道图)的属性“长度”,charts,kendo-ui,Charts,Kendo Ui,我对剑道图有问题,当从控制器返回的项目列表没有项目时,我有一个错误: Uncaught TypeError: Cannot read property 'length' of undefined kendo.all.min.js:28 Vt.extend._bindCategoryAxis kendo.all.min.js:28 Vt.extend._bindCategories kendo.all.min.js:28 Vt.extend._onDataChanged k
Uncaught TypeError: Cannot read property 'length' of undefined kendo.all.min.js:28
Vt.extend._bindCategoryAxis kendo.all.min.js:28
Vt.extend._bindCategories kendo.all.min.js:28
Vt.extend._onDataChanged kendo.all.min.js:28
b.isFunction.i jquery-1.9.1.min.js:3
i.extend.trigger kendo.all.min.js:9
tt.extend._process kendo.all.min.js:11
tt.extend.success kendo.all.min.js:11
b.isFunction.i jquery-1.9.1.min.js:3
n.success kendo.all.min.js:11
c jquery-1.9.1.min.js:3
p.fireWith jquery-1.9.1.min.js:3
k jquery-1.9.1.min.js:5
r jquery-1.9.1.min.js:5
如果我从代码中删除categoryAxis,则无论是否没有数据,所有工作都会按预期进行,但问题是我不会在x轴上表示时间:
function createChart() {
$("#chart").kendoChart({
dataSource: {
transport: {
read: {
url: "@Url.Action("GetLostDaysTrend", "Production")"+"?
initDate="+startDate+"&endDate="+endDate+"&reactor="+reactor
,contentType: "application/json",
type: "POST"
},
parameterMap: function (options) {
return JSON.stringify(options);
}
},
group: {
field: "Reactor"
},
sort: {
field: "Fecha",
dir: "asc"
}
},
title: {
text: "Tendencias de dias perdidos"
},
legend: {
position: "top"
},
seriesDefaults: {
type: "line"
},
series:
[{
field: "Acumulado",
name: "Acumulado",
groupNameTemplate: "#= group.value # (#= series.name #)"
}],
categoryAxis: {
field: "Fecha",
labels: {
template: "#= formatDate(value) #",
rotation: -90
}
},
tooltip: {
visible: true,
format: "N0"
}
});
}
这个问题让我头疼,有什么线索吗?我能找到的最好的答案是它是由于一个空数据集。这里有一个您可以尝试的解决方法:我能找到的最好的方法是它是由于一个空数据集造成的。您可以尝试以下解决方法:遇到相同的问题,并通过检查数组长度是否为非零来解决此问题:
parameterMap: function (options) {
...
if (options.sort.length == 0) {
return [];
}
else {
return options.sort[0].field + ',' + options.sort[0].dir;
}
}
遇到了相同的问题,并通过检查数组长度是否为非零来修复该问题:
parameterMap: function (options) {
...
if (options.sort.length == 0) {
return [];
}
else {
return options.sort[0].field + ',' + options.sort[0].dir;
}
}