如何在Kendo Grid中的save事件中撤消preventdefault

时间:2015-02-26 00:30:50

标签: kendo-ui kendo-grid kendo-window

我有一个Kendo Grid并将行保存事件设置为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();" />
     ...
     <%})

问题是点击$(&#34; #AssignSport&#34;)。data(&#34; kendoWindow&#34;)中的按钮后,程序无法进入网格的控制器操作.preventDefault()。

但是如果删除e.preventDefault(),那么程序将不会在$(&#34; #AssignSport&#34;)。data(&#34; kendoWindow&#34;)。open()之后等待并立即转到控制器动作。

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

1 个答案:

答案 0 :(得分:2)

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

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