Сетка Kendo выдает исключение после вызова функции dataSource.query () - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть две функции на странице.Одним из них является onRefresh () и fitToScreen ().Когда я нажимаю «Подогнать к экрану», он удаляет все предопределенные значения ширины столбца и сжимает всю таблицу, чтобы подогнать ее под экран.У меня также есть функция «При обновлении», которая обновляет сетку после фильтров или сортировки на уровне столбцов.

Теперь проблема в том, что если я вызову onRefresh, а затем FitToScreen, то возникает исключение.Это означает, что сетка Kendo выдает исключение после вызова функции dataSource.query().

Согласно моему исследованию, вот что я нашел на Telerik Site.https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/methods/query

enter image description here

onRefresh() {
    if (this.jobKendoGrid) {
        var sort = [{ field: "createdOn", dir: "desc" }]
        this.jobKendoGrid.dataSource.query({
            filter: {},
            sort: sort,
            pageSize: this.jobKendoGrid.dataSource.pageSize(),
            page: 1
        });
    }
}


public fitToScreen() {
        for (var i = 0; i < this.grid.columns.length; i++) {
            if (this.grid.columns[i].title && this.grid.columns[i].title != "Edit" && this.grid.columns[i].title != " ") {
                delete this.grid.columns[i].width;
            }
        }

        let options = this.grid.getOptions();

        this.grid.setOptions(options);
        if (this.grid.options.autoBind === false) {
            this.grid.refresh();
        }
    }

Чтобы решить эту проблему, я могу сделать следующее

let options = this.grid.getOptions();
this.grid.setOptions(options);

Вставить этидве строки в функцию «По размеру экрана» после итерации удаления столбца.Но все же, я думаю, что это уродливая идея, а не прямой ответ на проблему.Есть ли что-то еще, что нам нужно сделать в функции dataSource.Query (), Есть ли что-то, что мне не хватает в качестве параметра в этом?

...