【问题标题】:use jqgrid on dynamically loaded html在动态加载的 html 上使用 jqgrid
【发布时间】:2016-01-05 13:33:34
【问题描述】:

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

$.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 方法在加载的 html 上应用 jqGrid

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

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

请帮我确定申请jqGrid的确切时间

【问题讨论】:

  • 什么是modal() 方法?我猜这个插件应该有一个load/shown 事件,如果它以某种方式异步工作(使用动画?)。顺便说一句,createListGrig() 方法在做什么?
  • 谢谢@A.Wolff!您指出我刚刚在shown 回调中调用createListGrig("") 方法的正确方式,它按预期开始工作。顺便说一句:modal() - 推特引导模式。 createListGrig() 用我的参数调用类似 $("#list-grid").jqGrid({}) 的东西。
  • 请随时将其添加为答案,以便将此问题标记为已解决:)

标签: javascript jquery ajax twitter-bootstrap jqgrid


【解决方案1】:

正如@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();
}

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多