I'm using Kendo UI's window component, which is similar to any modal dialog.
I have a close button in it, how do I close the window upon clicking that button (instead of clicking the default 'x' button in the title bar)
The content in my window is loaded from another view
@(Html.Kendo().Window()
.Name("window")
.Title("Role")
.Content("loading...")
.LoadContentFrom("Create", "RolesPermissions", Model.Role)
.Modal(true)
.Width(550)
.Height(300)
.Draggable()
.Visible(false)
)
In that same view, I have
<span id="close" class="btn btn-inverse">Cancel</span>
This is what I have in my main view (the view calling the window)
$(document).ready(function () {
var window = $("#window").data("kendoWindow");
$("#open").click(function (e) {
window.center();
window.open();
});
$("#close").click(function(e) {
window.close();
});
});
In JavaScript - HTML
window
is an object that represents an open window in a browser. Try defining yourwindow
as something else.Basically you already know how to close the window - you need to do it with the close method of its API.
But in order to attach the handler to the button inside of the view you need to wait until the content is loaded - you need to use the refresh event.
e.g.
In case of working with content loaded by ajax, the Petur Subev's answer is perfect! I´d like to give an example working with templates, that is more simple (whereas not all requests shoulb be by ajax). Consider the template below:
And now, let´s load the template e call window close method:
there is an event in kendo ui for this it should be something like this