0
votes

My grid is build like this:

 @(Html.Kendo().Grid<MyProject.Models.DataObjects.MyObject>()
        .Name("my-object-grid")
        .Columns(columns =>
        {
            columns.Bound(p => p.ID).Hidden();
            columns.Bound(p => p.Name).Width(300);
            columns.Command(command =>
            {
                command.Edit().Text("Modify")
                    .UpdateText("Save")
                    .CancelText("Cancel")
                    .HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" });
                command.Destroy().Text("Delete").HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" });
            }).Width(220);
        })
        .ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new { style = "width:120px;height:30px;float:left;" }))
        .Editable(editable => editable.Mode(GridEditMode.PopUp)
        .Window(win => win.Title("MyObject")).TemplateName("MyObject"))
        .Pageable()
        .Sortable()
        .Scrollable()
        .Filterable()
        .HtmlAttributes(new { style = "height:430px;" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(10)
            .Model(model => 
            { 
                model.Id(p => p.ID);
            })
            .Create(update => update.Action("MyObject_Create", "MyObject"))
            .Read(read => read.Action("MyObject_Read", "MyObject"))
            .Update(update => update.Action("MyObject_Update", "MyObject"))
            .Destroy(update => update.Action("MyObject_Delete", "MyObject"))
                    .Events(evt => evt.Push("myObjectGridDataSource_push").Error("myObjectGridDataSource_error"))
         )
)

And the foolwingo javacript handlers are defined after:

<script type="text/javascript">

function myObjectGridDataSource_push(e) {
    alert(e.type);
}

function myObjectGridDataSource_error(e) {
    alert(e.status);
}
</script>

The javascript generated by the helper seems to be ok, but the event handlers are never fired when I add/edit/remove some item of the grid. But the requests to the controller are working fine.

Could be this related to the edit mode of the grid (using popup)? I can't find what I am doing wrong...

1

1 Answers

2
votes

Push is invoked during dataSource transport initialization which sets up push notifications. The data source will call this function only once and provide callbacks which will handle push notifications (data pushed from the server).

Push event Detailed information

If you can tell what exactly you are trying to achieve then I can be of a bit more help. Also if you want to catch the event before the record id being udpated or inserted or deleted then push won't do it. You will need to implement the sync event of the grid.