使用 AJAX 更新部分页面后,DataTables jquery add in 消失

Posted

技术标签:

【中文标题】使用 AJAX 更新部分页面后,DataTables jquery add in 消失【英文标题】:DataTables jquery addon dissapears after partialpage is updated with AJAX 【发布时间】:2020-06-20 07:24:36 【问题描述】:

我有一张表,我想与DataTables 插件一起使用。实际上,它真的很好用,我可以按原样使用所有功能。

不幸的是,我的表位于部分视图中,因为我认为在我的表中执行删除和编辑等基本操作时,使用 AJAX 更新部分视图很巧妙。

现在问题:

当我第一次加载带有局部视图的页面时,DataTables 会附加并正常工作。但是,如果我删除或编辑我的实体,导致 AJAX 更新部分视图,该功能就会消失。

虽然我可以通过将DataTables() 函数附加到包装我的局部视图的“静态”div 来解决这个问题,然后找到表类,如下所示:

$(document).ready(function () 
    $( "#partialViewWrapper" ).find( ".table" ).DataTable(
        paging: false,
        info: false
    );
);

不幸的是,这不起作用。因此,我想知道如何将 DataTables 附加到我的表中,以便更新我的局部视图不会“分离”插件。

【问题讨论】:

不清楚,但这似乎是一个范围界定问题!你在使用 ajax.reload() datatables.net/reference/api/ajax.reload() 吗? [功能消失]什么消失了……桌子? 【参考方案1】:

您需要在删除/编辑后刷新您的数据表。您可以根据需要使用加载/重新加载/绘制。

1.如果你的 ajax 数据 url 相同。那就试试吧

    yourDataTable.draw();

    OR 

    yourDataTable.ajax.reload();

    如果您需要更新 ajax 数据 url。那就试试吧

    yourDataTable.ajax.url(newUrl).draw();
    OR
    var myParams = yourDataTable.ajax.params();
    yourDataTable.ajax.url(newUrl, myParams).load();//if no parameter then pass null
    

【讨论】:

以上是关于使用 AJAX 更新部分页面后,DataTables jquery add in 消失的主要内容,如果未能解决你的问题,请参考以下文章

ajax datatable laravel链接

如何在 Laravel 的 DataTable 列表页面中更新状态

p:datatable 在 ajax 刷新后丢失排序列和顺序

通过ajax调用更新行后使用jQuery对表进行排序

如何从 p:dataTable 本身对 p:dataTable 进行 ajax 更新?

jquery datatable 怎样使用ajax的同步操作(async)