如何在 Kendo 网格中撤消保存事件中的 preventdefault

How to undo preventdefault in save event in Kendo Grid

我有一个 Kendo 网格并将行保存事件设置为 onAthleteGridSave。我想添加一个自定义 window 来设置类似于确认框的内容。这是代码

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();" />
     ...
     <%})

问题是在单击 $("#AssignSport").data("kendoWindow") 中的按钮后,程序无法进入 Grid 的控制器操作,这是由于 e.preventDefault() .

但如果删除 e.preventDefault(),则程序不会在 $("#AssignSport").data("kendoWindow").open() 之后等待并立即转到控制器操作。

所以我想知道是否有办法撤消 e.preventDefault() 或如何让程序在 kendo window 打开按钮信息的地方等待。谢谢。

您无法撤消它,但您可以在通过调用 saveChanges() 对模型进行更改后手动保存。所以你的点击处理程序中的类似这样的东西应该可以工作:

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