Kendo网格在调用`dataSource.query()`函数后引发异常

时间:2019-04-29 08:21:24

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我在页面上有两个功能。一种是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

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()函数中我们还需要做其他事情吗,在此我是否缺少作为参数的东西?

0 个答案:

没有答案