У меня есть стандартный диалог (не диалог 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