У меня есть jQGrid v4.6.0 (я могу воспроизвести ту же проблему с Free jqGrid ) на своей странице, которую я могу перезагрузить, используя:
$('#jqGrid').trigger('reloadGrid');
Он загружает данные, отправляя сообщения всервер.Он отправляет сообщения правильно, возвращает возвращенные данные и показывает правильные данные в сетке.
На той же странице у меня есть ссылка, которая открывает диалоговое окно Bootbox.Вызов reloadGrid из обратного вызова Bootbox, похоже, делает $ ('# jqGrid'). JqGrid "не функция"
bootBoxWindow = bootbox.dialog({
title: "title",
message: "foo",
size: "large",
closeButton: false,
buttons: {
ok: {
label: "Save 2",
className: "btn-success",
callback: function () {
$('#jqGrid').trigger('reloadGrid');
}
}
}
});
Когда это вызывает reloadGrid, jqGrid правильно отправляет сообщения на мой сервер и получает последние данные.Однако внутри события loadComplete я больше не могу ссылаться на jQuery ("# jqGrid"). JqGrid.
Пример:
jQuery("#jqGrid").jqGrid('showCol', 3);
... вызов этого внутри loadComplete приводит к ошибке: TypeError: jQuery ("# jqGrid"). jqGrid не является функцией "
Я получаю ту же ошибку при использовании $ (this) вместо jQuery (" # jqGrid ").
Я не могувоспроизведите проблему без Bootbox. Если я загружаю сетку, используйте следующее:
setTimeout(function () {
$('#jqGrid').trigger('reloadGrid', [{ current: true }]);
}, 10000);
... ошибки нет.