在窗口中关闭一个带有自定义关闭按钮的kendoui窗口
我正在使用Kendo UI的窗口组件,它类似于任何modal dialog。
我有一个关闭按钮,如何在单击该按钮时关闭窗口(而不是单击标题栏中的默认“x”按钮)
我的窗口中的内容是从另一个视图加载的
@(Html.Kendo().Window() .Name("window") .Title("Role") .Content("loading...") .LoadContentFrom("Create", "RolesPermissions", Model.Role) .Modal(true) .Width(550) .Height(300) .Draggable() .Visible(false) )
在同一个观点中,我有
Cancel
这是我在主视图中的内容(调用窗口的视图)
$(document).ready(function () { var window = $("#window").data("kendoWindow"); $("#open").click(function (e) { window.center(); window.open(); }); $("#close").click(function(e) { window.close(); }); });
基本上你已经知道如何关闭窗口 – 你需要使用其API的close方法来完成它。
$("#window").data("kendoWindow").close();
但是为了将处理程序附加到视图内的按钮,您需要等到内容加载 – 您需要使用refresh事件。
例如
$('#theWindowId').data().kendoWindow.bind('refresh',function(e){ var win = this; $('#close').click(function(){ win.close(); }) })
在JavaScript中 – HTML window
是表示浏览器中的打开窗口的对象。 尝试将window
定义为其他内容。
$(document).ready(function () { var wnd = $("#window").data("kendoWindow"); $("#open").click(function (e) { wnd.center(); wnd.open(); }); $("#close").click(function(e) { wnd.close(); }); });
在剑道ui有一个事件,它应该是这样的
$("#idofyourbutton").click(function () { $("#window").data("kendoWindow").close(); });
如果使用ajax加载的内容,Petur Subev的答案是完美的! 我想举一个使用模板的例子,这更简单(而不是所有的请求都是由ajax)。 考虑以下模板:
现在,让我们加载模板e调用窗口关闭方法:
function ExampleFn1(dataItem) { //create the template var template = kendo.template($("#Template_Example1").html()); //create a kendo window to load content var kWindow = openKendoWindow({ title: "Window Tests", iframe: false, resizable: false }).content(template(dataItem)); // call window close from button inside template $("#btn1").click(function (e) { e.preventDefault(); alert("btn1 on click!"); }); kWindow.open(); }