Search code examples
kendo-uikendo-gridkendo-window

How to undo preventdefault in save event in Kendo Grid


I have a Kendo Grid and set row save event as onAthleteGridSave. I want to add a custom window to set something similar to confirm box. Here is code

function onAthleteGridSave(e)
{
    e.preventDefault();

    $("#AssignSport").data("kendoWindow").open();

    $("#AssignSport").find(".assignsportandsave,.notassignsportandsave")
        .click(function () {
        if ($(this).hasClass("assignsportandsave")) {
            e.model.AssignSportId = $('#AssignEventId').data('kendoDropDownList').value();
        }
        else if ($(this).hasClass("notassignsportandsave")) {
            e.model.AssignSportId = "";
        }

        $("#AssignSport").data("kendoWindow").close();
    })
}    

<% Html.Kendo().Window()
    .Name("AssignSport")
    .Content(() =>
    { %>
        ...
        <input type="submit" class="assignsportandsave" value="Assign Sport And Save" />
        <input type="submit" class="notassignsportandsave" value="Not Assign Sport And Save" />
        <input type="submit" value="Cancel" onclick="$('#AssignSport').data('kendoWindow').close();" />
     ...
     <%})

The problem is after clicking button in $("#AssignSport").data("kendoWindow"), the program can not go to controller action for Grid which is due to e.preventDefault().

But if removing e.preventDefault(), then program will not wait after $("#AssignSport").data("kendoWindow").open() and immediately go to controller action.

So I want to know if there is a way to undo e.preventDefault() or how to make program wait at where kendo window is opened for button information. Thanks.


Solution

  • You can't undo it, but you can save manually after making your changes to the model by calling saveChanges(). So something like this inside your click handler should work:

    e.sender.saveChanges();
    $("#AssignSport").data("kendoWindow").close();