How to call refresh() on a kendo-grid from an Angular controller?

前端 未结 3 1403
一整个雨季
一整个雨季 2020-12-18 05:20

I\'m attempting to follow several suggestions on refreshing a kendo-grid such as this.

The essential is that in the html I have:

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-18 06:17

    Found the answer. One other method of refreshing the datasource I read about was to do something like:

    vm.mainGridOptions.datasource.transport.read();
    

    This wasn't working for me as "read" was undefined. Looking at my datasource definition, I saw the reason, read needs a parameter (in this case "e"):

        vm.mainGridOptions = {
            dataSource: {
                transport: {
                    read: function (e) {
                        task.getAllTasks(vm.appContext.current.contextSetting).
                            then(function (data) {
                                e.success(data);
                            });
                    },
                }
            },
    

    To solve, I saved "e" in my scope and then reused it when I wanted to refresh:

        vm.mainGridOptions = {
            dataSource: {
                transport: {
                    read: function (e) {
                        task.getAllTasks(vm.appContext.current.contextSetting).
                            then(function (data) {
                                e.success(data);
                                vm.optionCallback = e;
                            });
                    },
                }
            },
    

    and then:

    if (vm.optionCallback !== undefined) {
       vm.mainGridOptions.dataSource.transport.read(vm.optionCallback);
    }
    

    Problem solved (I hope).

提交回复
热议问题