Hello,
Does kendo grid (angularJS) has a directive for row created/updated events? Something like k-on-change for row selection but triggered when row has been created/updated.
If no are there any workarounds to get this event?
Thank you,
Nick
3 Answers, 1 is accepted
The Grid's save event is probably what you are looking for.
http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-save
http://docs.telerik.com/kendo-ui/AngularJS/introduction#event-handlers
Regards,
Dimo
Telerik

Hi Dimo,
It works if specified in the grid options (see below) and I appreciate for this:
editable: "popup",
save: function(e) {
    console.log('save(e) called');
},
filterable: true,
However the event k-on-save doesn't work for me (see below):
<div id="grid"
    kendo-grid="ctrl.kendoGrid"
    k-options="ctrl.kendoGridOptions"
    k-auto-bind="false"
    k-on-change="ctrl.changed(kendoEvent)"
    k-on-save="ctrl.saved(kendoEvent)"
    k-selectable="true">
</div>
function kendoGridCtrl() {
        /* jshint validthis:true */
        var ctrl = this;
        ctrl.changed = onChanged;
        ctrl.saved = onSaved;
        function onChanged(kendoEvent) {
            console.log('change(kendoEvent) called'); // this one works
        }
        function onSaved(kendoEvent) {
            console.log('save(kendoEvent) called'); // this one doesn't work
        }
}
Could you please tell me what is wrong with the code above?
Thank you,
Nick
Here is a test page, which works as expected. Please compare it with your implementation.
<!DOCTYPE html><html><head>    <base href="http://demos.telerik.com/kendo-ui/grid/angular">    <style>html { font-size: 12px; font-family: Arial, Helvetica, sans-serif; }</style>    <title></title>    <link rel="stylesheet" href="http://cdn.kendostatic.com/2015.1.408/styles/kendo.common.min.css" />    <link rel="stylesheet" href="http://cdn.kendostatic.com/2015.1.408/styles/kendo.default.min.css" />    <script src="http://cdn.kendostatic.com/2015.1.408/js/jquery.min.js"></script>    <script src="http://cdn.kendostatic.com/2015.1.408/js/angular.min.js"></script>    <script src="http://cdn.kendostatic.com/2015.1.408/js/kendo.all.min.js"></script></head><body><div id="example" ng-app="KendoDemos">    <div ng-controller="MyCtrl">        <kendo-grid            options="mainGridOptions"            k-on-change="onChange(kendoEvent)"            k-on-save="onSave(kendoEvent)"            k-selectable="true">        </kendo-grid>    </div></div><script>var crudServiceBaseUrl = "http://demos.telerik.com/kendo-ui/service";angular.module("KendoDemos", [ "kendo.directives" ])    .controller("MyCtrl", function($scope){        $scope.DS = new kendo.data.DataSource({            transport: {                read:  {                    url: crudServiceBaseUrl + "/Products",                    dataType: "jsonp"                },                update: {                    url: crudServiceBaseUrl + "/Products/Update",                    dataType: "jsonp"                },                destroy: {                    url: crudServiceBaseUrl + "/Products/Destroy",                    dataType: "jsonp"                },                create: {                    url: crudServiceBaseUrl + "/Products/Create",                    dataType: "jsonp"                },                parameterMap: function(options, operation) {                    if (operation !== "read" && options.models) {                        return {models: kendo.stringify(options.models)};                    }                }            },            batch: true,            pageSize: 5,            schema: {                model: {                    id: "ProductID",                    fields: {                        ProductID: { editable: false, nullable: true },                        ProductName: { validation: { required: true } },                        UnitPrice: { type: "number", validation: { required: true, min: 1} },                        Discontinued: { type: "boolean" },                        UnitsInStock: { type: "number", validation: { min: 0, required: true } }                    }                }            }        });                 $scope.onSave = function(e) {            alert("on save");        };                 $scope.onChange = function(e) {            alert("on change");        };                 $scope.mainGridOptions = {            dataSource: $scope.DS,            toolbar: ["create"],            columns: [                { field:"ProductName", title: "Product Name" },                { field: "UnitPrice", title:"Unit Price", format: "{0:c}", width: "120px" },                { field: "UnitsInStock", title:"Units In Stock", width: "120px" },                { field: "Discontinued", width: "120px" },                { command: ["edit", "destroy"], title: " ", width: "250px" }],            editable: "popup"        };             });</script></body></html>Regards,
Dimo
Telerik
