2

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

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") 中的按钮后,由于 e.preventDefault(),程序无法进入 Grid 的控制器操作。

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

所以我想知道是否有办法撤消 e.preventDefault() 或者如何让程序在打开剑道窗口的位置等待按钮信息。谢谢。

4

1 回答 1

3

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

e.sender.saveChanges();
$("#AssignSport").data("kendoWindow").close();
于 2015-02-26T01:16:59.053 回答