繁体   English   中英

jQuery数据表,模态窗口后该表不可用

[英]jquery datatables, table unavailable after modal window

我正在构建一个使用datatables网格的asp.net mvc应用程序。 我显示网格。 在网格上,我添加了rowclick事件:

function CreateRowClickHandler() {
var table = $('#table').dataTable();
$("#table > tbody").on('click', 'tr', function(e) {
    e.preventDefault();
    var index = $('#table').data('id-index');
    var id = table.fnGetData($(this)[0])[index];

    var url = $('#table').data('rowclick-url');
    url += "/" + id;
    $().loadPartial(url);

  });

}

loadpartial函数加载mvc操作:

 $.fn.loadPartial = function (url, callback) {
    var container = ($(this).length == 0) ? ($("#jqcontainer")) : ($(this));
    container.load(url, function (responseText, textStatus, XMLHttpRequest) {

        if (XMLHttpRequest.status == 403) {
            $('body').notifyBox({
                message: 'Unauthorized access! Call support for help!'
            });
        }
        if (XMLHttpRequest.status == 500) {
            $('body').notifyBox({
                message: 'The process failed for unknown reasons! Call support for help!'
            });
        }
        if ($.isFunction(callback)) callback(responseText, textStatus, XMLHttpRequest);
    });
};

当我进入chrome调试器时,首次加载该页面时,我可以调用:

  $('#table').dataTable().fnReloadAjax();

我可以重复多次。 它从服务器重新加载数据。 当我单击其中一行时,以及使用以下代码关闭模式窗口后:

                    $('#partialview').dialog("close");

在Chrome调试器中,fnreloadajax给了我以下错误:

TypeError: Object [object Object] has no method 'fnReloadAjax'

关闭模型窗口后,看起来该对象不再是DataTables网格,但是我无法弄清楚为什么会发生这种情况。 谁能给我一些提示吗?

我返回了完整的页面。 这导致了已加载的jquery的新副本。 无线帮助我弄清楚了这一点。 从控制器仅返回部分视图后,问题得以解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM