ASP.NET Core-Kendo对话框:如何阻止模态窗口转到页面顶部

问题描述 投票:0回答:1

无论何时弹出模态窗口,它都将以如下方式转到页面顶部:https://i.imgur.com/6DDP3Ic.gif

自包含的Telerik项目https://filebin.net/wgcuasrr6uhejmrv

如何防止其转到页面顶部?

这是代码,删除确认对话框转到页面顶部:

<div class="row">
    <div class="col-12">
        @(Html.Kendo().Grid<TelerikAspNetCoreApp7.Models.OrderViewModel>()
                .Name("grid")
                .Columns(columns =>
                {
                    columns.Bound(p => p.OrderID).Filterable(false);
                    columns.Bound(p => p.Freight);
                    columns.Bound(p => p.OrderDate).Format("{0:MM/dd/yyyy}");
                    columns.Bound(p => p.ShipName);
                    columns.Bound(p => p.ShipCity);
                    columns.Command(command =>
                    {
                        command.Custom("Destroy")
                            .Click("showDeleteConfirmation")
                            .HtmlAttributes(new { style = "width:40%" });
                    }).Width("15%");
                })
                .Pageable()
                .Sortable()
                .Scrollable()
                .Filterable()
                .HtmlAttributes(new { style = "height:550px;" })
                .DataSource(dataSource => dataSource
                    .Ajax()
                    .PageSize(20)
                    .Read(read => read.Action("Orders_Read", "Grid"))
                    .Destroy(read => read.Action("Orders_Read", "Grid"))
                )
        )
    </div>
</div>

@(Html.Kendo()
        .Dialog()
        .Name("DeleteConfirmation")
        .Modal(true)
        .Title("Confirm Delete")
        .Content("Are you sure you want to delete this item?")
        .Visible(false)
        .Actions(a =>
        {
            a.Add().Text("No").Action("cancelDelete");
            a.Add().Text("Yes").Action("confirmDelete").Primary(true);
        })
)
<script>
    var modelToDelete;

    function showDeleteConfirmation(e) {
        var grid = $("#grid").data("kendoGrid");
        var dialog = $('#DeleteConfirmation').data("kendoDialog");

        modelToDelete = grid.dataItem($(e.target).parents('tr'));
        dialog.content("Are you sure you want to delete this item with ID - " + modelToDelete.OrderID + "?");
        dialog.open();
    }

    function confirmDelete(e) {
        var grid = $("#grid").data("kendoGrid");
        grid.dataSource.remove(modelToDelete); 
        grid.dataSource.sync();
        $('#DeleteConfirmation').data("kendoDialog").close();
    }

    function cancelDelete() {
        $('#DeleteConfirmation').data("kendoDialog").close();
    }
</script>
asp.net-core kendo-ui kendo-asp.net-mvc
1个回答
0
投票

很久以前,我遇到了类似的问题。不幸的是,我完全忘记了如何解决它:(

建议:

尝试将e.preventDefault();添加到您的自定义命令处理程序中:'

© www.soinside.com 2019 - 2024. All rights reserved.