我有一个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窗口的地方进行程序等待。谢谢。
答案 0 :(得分:2)
您无法将其撤消,但可以在通过调用saveChanges()对模型进行更改后手动保存。所以在你的点击处理程序中这样的东西应该可以工作:
e.sender.saveChanges();
$("#AssignSport").data("kendoWindow").close();