使用Kendo.Grid()时,单击工具栏中的“保存更改”按钮后,kendoDialog不会再次触发

时间:2019-06-10 18:57:10

标签: asp.net-mvc kendo-grid preventdefault

我有一个Kendo.Grid()定义了SaveChanges动作:

.Events(events => events.DataBound("Databound").SaveChanges("SaveGrid").Edit("Edit"))

当用户在一行中更改“金额”字段并第一次单击工具栏上的“保存更改”按钮时,如果金额不等于特定数字,我将收到kendoDialog显示错误消息

单击“保存更改”并action == 'false'时,我将显示带有“取消”按钮的kendoDialog,这是在模仿“取消更改”按钮的单击事件。

那只能在第一次使用。当我第二次单击“ SAVE CHANGES”时,更新失败,但是kendoDialog不再显示。

这是单击“保存更改”时调用的函数的逻辑:

function SaveGrid(e) {
    var rowsCount = e.sender.dataSource.data().length;
    var totalSum = 0;
    if (rowsCount > 0) {
        for (var i = 0; i < rowsCount; i++) {
            totalSum += e.sender.dataSource.data()[i].Amount;
        }
    }
    var ticketAmount = $('#Ticket_Amount').val();
    if (totalSum != ticketAmount) {

        ShowConfirmationPopUp("Ticket Amount should be equal to the Total Amount of records updated", 'false');
        e.preventDefault();            
    }
    else {
        ShowConfirmationPopUp('success', 'true');
    }
}

function ShowConfirmationPopUp(message, action) {
    if (action == 'false')
        $("#dialog").kendoDialog({
            width: "400px",
            title: "Update Confirmation",
            modal: true,
            content: "<div style='text-align: center'>" + message + "</div>",
            actions: [
                {
                    text: "CANCEL",
                    action: function () {
                        $(".k-grid-cancel-changes").click();
                    }
                }
            ]
        });    
}

在这里,我叫ShowConfirmationPopUp函数,其中基于action,我显示kendoDialog

这种方法有什么问题,我该如何实现?

0 个答案:

没有答案