Hi,
Im launching a modal from a kendo grid button, using kendo window.
It opens and displays its content fine, but when I click close, the overlay over the parent remains and I cant do anything.
Heres my code -
Parent View where grid exists -
<tbody> @(Html.Kendo().Grid<OriginGreen.Models.CompanySearchGridViewModel.CompanyModel>() .Name("CompaniesGrid") .Columns(columns => { columns.Bound(c => c.Name).ClientTemplate("<a href='" + Url.Action("ManageCompanies") + "/#= CompanyId #'" + ">#= Name #</a>").Title("Name").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); //.Filterable(filterable => filterable.UI("nameFilter")); columns.Bound(c => c.Plan_Version).Title("Version").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(75); columns.Bound(c => c.Duration).Title("Duration").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(80); columns.Bound(c => c.Period).Title("Period").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); columns.Bound(c => c.Annual_Review_Year).Title("AR Year").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(75); columns.Bound(c => c.New_Legacy_Plan).Title("New").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(75); columns.Bound(c => c.Next_AR_Due_Date).Format("{0:dd/MM/yyyy}").Title("AR Date").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(75).Filterable(f => f.UI("DateFilter")).ClientTemplate( "# if (Next_AR_Due_Date == null) { #" + " N/A " + "# } else { #" + " #=kendo.toString(Next_AR_Due_Date, 'dd/MM/yyyy')# " + "# } #" ); columns.Bound(c => c.Current_Status).Title("Status").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); columns.Bound(c => c.AssignedToUserName).Title("Assigned To").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); columns.Bound(c => c.BordBiaUserName).Title("BB Reviewer").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); columns.Bound(c => c.ThirdPartyUserName).Title("SGS Reviewer").HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).HtmlAttributes(new { @class = "customGridRowStyle" }).Width(100); columns.Command(command => command.Custom("Assign To User").Click("assignToUser")).HeaderHtmlAttributes(new { @class = "customHeaderStyle" }).Width(100); //columns.Template(x => { }).ClientTemplate("<a class='k-button k-button-icontext k-grid-EditSpecification sgs-ql-edit' title='Assign To User' data-modal-title='Edit Specification' href='" + Url.Action("AssignToUser", "Search", new { id = "#= CompanyId #" }) + "'>Assign To User</a>").Width(100); //columns.Template(x => { }).ClientTemplate("<a class='k-button k-button-icontext k-grid-EditArticle' href='" + Url.Action("AssignToUser", "Search", new { id = "#= CompanyId #" }) + "'>Assign To User</a>").Width(100); //columns.Template(x => { }).ClientTemplate(@Html.ActionLink(Strings.QuickLinksAdd, "AssignToUser", "Search", new { id = "#= CompanyId #" }, new { data_popup_url = Url.Action("AssignToUser"), data_modal_title = "Assign Company to User" }).ToString()).Width(100); }) .ToolBar(tools => tools.Excel()) .Excel(excel => excel .FileName("Company_List_Admin.xlsx") .Filterable(true) .ProxyURL(Url.Action("Excel_Export_Save", "Plan")) .AllPages(true)) .Events(e => e.DataBound("onRowBound")) .Pageable() .Sortable() .Scrollable() .Selectable() .Filterable(filterable => filterable .Extra(false) .Operators(operators => operators .ForString(str => str.Clear() .StartsWith("Starts with") .IsEqualTo("Is equal to") .IsNotEqualTo("Is not equal to") .Contains("Contains") ) .ForNumber(num => num.Clear() .IsEqualTo("Is Equal To") .IsNotEqualTo("Is Not Equal To") .IsGreaterThan("Is Greater Than") .IsLessThan("Is Less Than") ) .ForDate(dt => dt.Clear() .IsEqualTo("Is Equal To") .IsNotEqualTo("Is Not Equal To") .IsGreaterThan("Is Greater Than") .IsLessThan("Is Less Than") ) ) ) .DataSource(dataSource => dataSource .Ajax() .ServerOperation(false) .PageSize(10) .Batch(true) .Model(model => { model.Id(c => c.CompanyId); }) .Read(read => read.Action("DisplayAdminSearchGrid", "Search").Type(HttpVerbs.Get)) ) ) </tbody> <div> @(Html.Kendo().Window() .Name("AssignToUser") .Title("AssignToUser") .Visible(false) .Actions(actions => actions .Close() ) .Modal(true) .Draggable(true) .Width(500) .Height(250) ) </div>Script -
<script type="text/javascript"> function assignToUser(e) { e.preventDefault(); var dataItem = this.dataItem($(e.currentTarget).closest("tr")); var url = "/Portal/Search/AssignToUser/" + dataItem.id; var wnd = $("#AssignToUser").kendoWindow({ title: "Assign To User", actions: ["Close"], content: url, visible: false, modal: true }).data("kendoWindow"); wnd.center(); wnd.open(); } </script>
The view that displays in the modal is a partial view -
@model OriginGreen.Models.SearchAssignUserViewModel@{ ViewBag.Title = "AssignToUser";}@*<link href="~/Content/bootstrap.css" rel="stylesheet"><link href="~/Content/custom_theme/jquery-ui.min.css" rel="stylesheet"><link href="~/Scripts/Kendo_UI_2017_R2/styles/kendo.common-bootstrap.min.css" rel="stylesheet"><link href="~/Scripts/Kendo_UI_2017_R2/styles/kendo.bootstrap.min.css" rel="stylesheet">*@@using (Html.BeginForm("EditAssignedUsers", "Search", FormMethod.Post, new { enctype = "multipart/form-data", id = "formEditAssignedUser" })){ @Html.AntiForgeryToken() <div class="form-horizontal"> <div class="row"> <div class="col-md-12"> <h4>Assign To User</h4> <div> Company ID : @Model.Id </div> </div> </div> <div class="row"> @Html.LabelFor(model => model.BordBiaUsers, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-4"> @Html.DropDownListFor(model => model.BordBiaUserId, new SelectListItem[] { new SelectListItem { Value = "", Text = "Please Select...." } } .Union( Model.BordBiaUsers .Select(i => new SelectListItem { Value = i.UserId.ToString(), Text = i.FullName })), new { @class = "form-control" }) </div> </div> <div class="row"> @Html.LabelFor(model => model.ThirdPartyUsers, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-4"> @Html.DropDownListFor(model => model.ThirdPartyUserId, new SelectListItem[] { new SelectListItem { Value = "", Text = "Please Select...." } } .Union( Model.BordBiaUsers .Select(i => new SelectListItem { Value = i.UserId.ToString(), Text = i.FullName })), new { @class = "form-control" }) </div> </div> </div> @Html.HiddenFor(model => model.Id) <div class="form-horizontal"> <div> <div class="profilebuttons"> <input type="submit" value="@Strings.SaveButton" class="btn btn-green btn-default" /> @*<input type="button" value="@Strings.CancelButton" class="btn btn-green cancel-btn" data-action-url="@Url.Action("SearchAdmin")" />*@ @Html.ActionLink(Strings.CancelButton, "Index", "Search", new { }, new { @class = "btn btn-green", id = "cancelProfile" }) </div> </div> </div>}
Any ideas on why the overlay remains when the modal closes?
Thanks.
