Диалог jquery не отображается правильно в проекте кендо - PullRequest
0 голосов
/ 19 мая 2019

У меня есть стандартный диалог (не диалог Telerik Kendo) с несколькими элементами управления, включая сетку Telerik.Я использовал кнопку с data-target и data-toggle, и все работало нормально.Нажатие на кнопку показывает диалог.Все хорошо.

Теперь я понял, что между моментом, когда страница была первоначально загружена, и временем, когда пользователь решает нажать кнопку, данные, которые должны быть в этой сетке, уже не актуальны.Мне нужно обновить его, когда пользователь откроет диалоговое окно.

Поэтому я изменил кнопку, чтобы настроить событие щелчка.Это отлично работает.Затем в функции я пытаюсь использовать диалоговое окно jQuery (), чтобы открыть диалоговое окно, но это не работает.Я получаю кучу 404 ошибок для значков и чего-то такого, что не найдено, а затем оно отображается пустым.

Так что я знаю, что если я перенесу все это в диалог кендо (что я, вероятно, должен был сделать изначально), я, вероятно, могу решить это таким образом, или, если я включу целую кучу ссылок jquery, я, вероятно, тоже смогу решить это таким образом (но, вероятно, изменил бы стиль диалога).

Однако страницасложен с вкладками и панелями и динамически создаваемыми модалами, основанными на данных, поэтому я предпочитаю не переносить что-либо прямо сейчас.Это работало просто отлично, используя data-target и data-toggle.

Итак, мой вопрос: как мне вручную смоделировать data-toggle / data-modeal без необходимости реструктурировать / переносить какой-либо код или ссылки?

Пример того, что сработало:

<button type="button" id="btnProcessReceipt-10" name="btnProcessReceipt-10" href="#" title="Process Receipt" class="button k-button" style="width:120px" data-toggle="modal" data-target=".process-receipt-many-10">Process Receipt</button>

Пример того, что я пытаюсь сделать сейчас, но не работает:

<button type="button" id="btnProcessReceipt-10" name="btnProcessReceipt-10" href="#" title="Process Receipt" onclick="processReceiptDialog(this)" class="button k-button" style="width:120px">Process Receipt</button>

Это функция processReceiptDialog:

        function processReceiptDialog(e) {
        if (typeof e === "undefined")
            return;

        var idArr = e.id.split('-');
        var idBatch = idArr[idArr.length - 1];

        var grid = $("#active-invoices-" + idBatch).data("kendoGrid");
        grid.dataSource.read();

        $(".process-receipt-many-" + idBatch).dialog();
    }

Как я уже говорил, в задней части было очень трудно заставить все это работать на начальном этапе, поэтому я предпочитаю не слишком много переделывать.Просто управляйте показом / скрытием вручную.

Спасибо!Bruce

...