我在页面上有两个功能。一种是onRefresh()和fitToScreen()。 当我按fit to screen时,它将删除所有预定义的列宽并缩小整个表格,使其适合屏幕。我还具有On Refresh功能,该功能将在列级过滤器或排序后刷新网格。
现在的问题是,如果我先调用onRefresh,然后再调用FitToScreen,则会引发异常。意味着Kendo网格在调用dataSource.query()
函数之后引发异常。
根据我的研究,以下是我在Telerik网站上发现的内容。 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()函数中我们还需要做其他事情吗,在此我是否缺少作为参数的东西?