在kendo网格内调用knockout方法

时间:2018-03-17 20:19:24

标签: asp.net-mvc knockout.js kendo-ui kendo-asp.net-mvc knockout-mvc

我有简单的剑道UI网格

$("#Grid").kendoGrid({
    dataSource: {
        serverPaging: true,
        transport: {
            read: "Course/Read",
            dataType: "json"
        },
        schema: {
            data: "Data",
            total: "Total",
            errors: "Errors"
        },
        pageSize: 10
    },
    pageable: true,
    columns:
        [
          { field: "CourseName", title: "Name", width: 100 },
          { field: "SpecialtyName", title: "Specialty", width: 100, filterable: false },
          { title: "Edit", template: '<span class="EditIcon"><i data-bind="click:Edit(#: Id#)" class="fa fa-edit"></i></span>', width: 50 },
        ]
});

问题出在我使用的时候:

 data-bind="click:Edit(#: Id#)"

当点击编辑调用函数不能在kendo网格内工作时注意网格和函数里面的knockout viewmodel

function viewmodel() {
    var self = this;
 self.Load = function () {
$("#Grid").kendoGrid({
    dataSource: {
        type: "aspnetmvc-ajax",
        serverPaging: true,
        transport: {
            read: "Course/Read",
            dataType: "json"
        },
        schema: {
            data: "Data",
            total: "Total",
            errors: "Errors"
        },
        pageSize: 10
    },
    pageable: true,
    columns:
        [
          { field: "CourseName", title: "Name", width: 100 },
          { field: "SpecialtyName", title: "Specialty", width: 100, filterable: false },
          { title: "Edit", template: '<span class="EditIcon"><i data-bind="click:Edit(#: Id#)" class="fa fa-edit"></i></span>', width: 50 },
        ]
});
}
self.Load();
self.Edit= function (Id) {
////////my code////////
}
}

一切正常,绑定检索数据,除了kendo网格内的call knockout方法以外,感谢任何帮助谢谢。

1 个答案:

答案 0 :(得分:0)

如果有人在寻找答案或打开这篇帖子,这与剑道无关,这是因为网格在敲除绑定完成后渲染行,所以你可以在javascript中使用temp var中的viewmodel对象并像tempvar.callfunction一样使用它()。