0
votes

I have simple kendo UI grid

$("#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 },
        ]
});

the problem is when I am using:

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

when click on edit calling function not work inside kendo grid notice that both the grid and function inside 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////////
}
}

everything work fine the binding retrieve data, extra except call knockout method inside kendo grid, appreciate any help thanks.

1

1 Answers

0
votes

if anyone looking for answer or open this post, this is not related to kendo, this is because the grid render rows after knockout binding done, so you can take viewmodel object in temp var in javascript and use it like tempvar.callfunction().