Проблема с сеткой кендо. Подтверждающее сообщение не обновляется - PullRequest
0 голосов
/ 13 июля 2020

Я использую Kendo Grid для вывода пользовательских данных. Обнаружена проблема. Когда пользователь нажимает кнопку удаления, появляется проверочное сообщение: «Вы пользователь, которого хотите удалить, пользователь Джо Блоу?». Если я нажму «Отмена» и попробую другого пользователя «Салли Смит», появится сообщение об ошибке: «Вы пользователь, которого хотите удалить, пользователь Джо Блоу». Я проверил функцию, и правильные данные передаются в функцию.

Я просмотрел код в отладчике Chrome и обнаружил, что сообщение об ошибке возвращается из кода на: https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.js

У меня есть функция, которая сбрасывает значения на «». Однако данные не обновляются при переходе на kendo.all. js. Как я могу сбросить данные, когда они туда попадают?

Вот мой код для кнопки:

template: '<button class="btn btn-danger btn-sm" onclick="confirmDelete(\'#=ExternalId#\', \'#=FirstName#\', \'#=LastName#\', \'#=EmailAddress#\')" style="padding: .25rem;">X</button>',

Вот мой код для функции удаления:

var confirmDelete = function (eid, firstN, lastN, emailA) {
        var dialog = $("#delete-confirm-modal");
        externalId = eid;
        firstName = firstN;
        lastName = lastN;
        emailAddress = emailA;

        if (dialog.data("kendoDialog")) {
            dialog.data("kendoDialog").open();
        } else {
            dialog.kendoDialog({
                width: "450px",
                title: "Confirm delete",
                closable: true,
                modal: true,
                content: "<p>Confirm that you wish to delete user " + firstName + " " + lastName + "(" + emailAddress + "). Once this is done, it cannot be reversed.</p>",
                actions: [
                    {
                        text: "Cancel",
                        primary: true
                    }, {
                        text: "Confirm",
                        action: function (e) {
                            var url = "/apic/usermaintenance/deleteuser/" + externalId;
                            $.get(url,
                                function (data) {
                                    //$("#userListGrid").data("kendoGrid").dataSource.read;
                                    //$("#userListGrid").data("kendoGrid").refresh();

                                    /*$('#userListGrid').data('kendoGrid').dataSource.read().then(function () {
                                        $('#userListGrid').data('kendoGrid').refresh();
                                    });*/

                                    KendoGridRefresh();
                                    
                                    kendo.alert("User has been deleted");
                                }).fail(function () {
                                    kendo.alert("Unable to delete user. An error has occured. Please try again.");
                                });
                                                                               }
                    }
                ],
                close: onClose
            });
        }
    };

1 Ответ

1 голос
/ 13 июля 2020

При первом нажатии вы инициализируете диалог, при втором щелчке вы открываете уже инициализированный диалог со старым содержимым.

Вам необходимо обновить содержимое диалогового окна:

    if (dialog.data("kendoDialog")) {
        dialog.data("kendoDialog").content("<p>Confirm that you wish to delete user " + firstName + " " + lastName + "(" + emailAddress + "). Once this is done, it cannot be reversed.</p>");
        dialog.data("kendoDialog").open();
    }

Пример: обновить содержимое

...