2

我的剑道图表有问题,当从控制器返回的项目列表没有项目时,我有一个错误:

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

我被这个问题打破了头,有什么线索吗?

4

2 回答 2

3

遇到同样的问题并通过检查数组的长度是否非零来修复它:

parameterMap: function (options) {
...

    if (options.sort.length == 0) {
    return [];
    }
    else {
    return options.sort[0].field + ',' + options.sort[0].dir;
    }
}
于 2014-09-19T03:15:39.157 回答
1

我能找到的最好的结果是它是由于一个空数据集。这是您可以尝试的解决方法: http ://www.kendoui.c​​om/forums/ui/grid/grid-empty-result-response-handling.aspx

于 2013-05-17T19:55:10.820 回答