При работе с Kendo.Grid () kendoDialog не запускается второй раз после нажатия кнопки «СОХРАНИТЬ ИЗМЕНЕНИЯ» на панели инструментов. - PullRequest
0 голосов
/ 10 июня 2019

У меня есть Kendo.Grid () definingf a SaveChanges action:

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

Когда пользователь меняет поле Amount на одну строку и нажимает кнопку «SAVE CHANGES»с панели инструментов в первый раз, я получаю kendoDialog, отображающее сообщение об ошибке, если сумма не равна конкретному числу.

Когда нажата кнопка «СОХРАНИТЬ ИЗМЕНЕНИЯ» и action == 'false', яотображение kendoDialog с кнопкой «ОТМЕНА», то есть при нажатии имитирует событие нажатия кнопки «ОТМЕНА ИЗМЕНЕНИЙ».

Это работает только в первый раз.Когда я нажимаю «СОХРАНИТЬ ИЗМЕНЕНИЯ» во второй раз, я не могу выполнить обновление, но 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

Что не так с таким подходом и как я могу реализовать что-то подобное?

...