在动态加载的html上使用jqgrid

use jqgrid on dynamically loaded html

本文关键字:jqgrid html 动态 加载      更新时间:2023-09-26

我有一个模式对话框,它通过AJAX调用加载其主体。在加载的正文中,我有使用jqGrid的HTML标记。

$.get('@Url.Action("ListPartial")',null, function(data, txtStatus, jqXHR) {
                 customModal('Modal header', data);
                 createListGrig("");
              });

customModal方法

function customModal(title, body) {
    var modal = $('#modalDialog');
    modal.find('h6.modal-title').html(title);
    modal.find('#modalBody').html(body);
    modal.modal();
}

createListGrig方法将jqGrid应用于加载的html。

问题是,当我的模态出现时,网格的宽度为0。但是,当我添加setTimeout 1秒时,它会像预期的那样出现。

setTimeout(function (){createListGrig("")}, 1000);

请帮我计算出应用jqGrid 的确切时间

正如@A.Wolff在他的评论中提到的那样,正确的时刻是调用模态的shown方法。我更新了我的代码,使其正确工作:

$.get('@Url.Action("ListPartial")',null, function(data, txtStatus, jqXHR) {
                customModal('Copy Address from Partner', data, function() {
                    createListGrig("");
                });
            });

customModal方法

function customModal(title, body, callBack) {
    var modal = $('#modalDialog');
    modal.find('h6.modal-title').html(title);
    modal.find('#modalBody').html(body);
    modal.on('shown.bs.modal', function (e) {
        if (callBack) callBack();
    });
    modal.modal();
}