New to Telerik UI for ASP.NET CoreStart a free 30-day trial

Prevent Grid Popup Editor from Closing on Update and Create

Environment

ProductProgress Telerik UI for ASP.NET Core Grid
Progress Telerik UI for ASP.NET Core versionCreated with the 2023.2.829 version

Description

How can I keep the popup editor of the Telerik UI for ASP.NET Core Grid open after I update or insert a record?

Solution

To achieve the desired scenario:

  1. Handle the Edit event of the Grid and attach an event handler for the close event of the Popup window.
  2. In the close handler, the e.preventDefault() method will be called to prevent the popup from closing.
  3. To allow the user to close the editor, set a preventCloseOnSave flag when the Cancel and Close buttons are clicked.
  4. Contrary to the previous step, subscribe to the Save event of the Grid and reset the flag.
Index.cshtml
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.ProductViewModelGridPopUp>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ProductName);
        columns.Bound(p => p.UnitPrice).Width(100);
        columns.Bound(p => p.UnitsInStock).Width(100);
        columns.Bound(p => p.Discontinued).Width(100);
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Pageable()
    .Sortable()
    .Scrollable()
    .Events(ev => {
        ev.Edit("onEdit");
        ev.Save("onSave");
    })
    .HtmlAttributes(new { style = "height:430px;" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(20)
        .Model(model => model.Id(p => p.ProductID))
        .Create(update => update.Action("EditingPopup_Create", "Grid"))
        .Read(read => read.Action("EditingPopup_Read", "Grid"))
        .Update(update => update.Action("EditingPopup_Update", "Grid"))
        .Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
    )
)

More ASP.NET Core Grid Resources

See Also