У меня есть две функции на странице.Одним из них является onRefresh () и fitToScreen ().Когда я нажимаю «Подогнать к экрану», он удаляет все предопределенные значения ширины столбца и сжимает всю таблицу, чтобы подогнать ее под экран.У меня также есть функция «При обновлении», которая обновляет сетку после фильтров или сортировки на уровне столбцов.
Теперь проблема в том, что если я вызову onRefresh, а затем FitToScreen, то возникает исключение.Это означает, что сетка Kendo выдает исключение после вызова функции dataSource.query()
.
Согласно моему исследованию, вот что я нашел на Telerik Site.https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/methods/query
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 (), Есть ли что-то, что мне не хватает в качестве параметра в этом?