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

私が見つけることができる最善のことは、それがnullデータセットによるものであることです。試すことができる回避策は次のとおりです: http ://www.kendoui.c​​om/forums/ui/grid/grid-empty-result-response-handling.aspx

于 2013-05-17T19:55:10.820 に答える