【问题标题】:Datatable destroy not working properly数据表破坏无法正常工作
【发布时间】:2015-11-03 17:07:44
【问题描述】:

使用table.destroy()方法后我的表格行仍然显示,只有搜索框和datatable的其他边框不显示。

我想删除数据表中的所有行,基本上我想删除整个数据表以便我可以重新初始化它。

谢谢

【问题讨论】:

    标签: datatable datatables datatables-1.10


    【解决方案1】:

    当您使用destroy() 方法时,您实际上是在将表格恢复到其原始状态。表格的 HTML 仍然存在于页面上,因此您仍然可以看到表格行,而没有添加 DataTables 功能。

    如果您想从DataTable 中删除数据行,您可能需要查看clear() 方法,例如:

    table.clear();
    

    我已经设置了一个 jsfiddle 来演示这些选项。

    如果你能提供你的代码,我应该能给你一个更准确的答案。

    【讨论】:

    • 您好,感谢您的回复,但问题是我仍在获取列标题,并且无法加载新列。你能告诉我出了什么问题吗?如果我连续使用 table.destroy() 两次,那么我将无法再次创建表。谢谢你
    • 我应该编辑我的问题,给你我的问题的简要细节
    • 我建议你销毁你原来的DataTable,刷新你的表格HTML,然后重新初始化你的DataTable。请参阅此处的示例:jsfiddle.net/pdbb8uxp/1。如果您可以发布您的代码,我可能会提供更多帮助。
    • 请注意,给出的 jsfiddle 示例实际上调用了table.clear().draw();。只是table.clear() 不起作用。
    【解决方案2】:

    如果其他人发现了这个线程,我在尝试用 ajax 调用替换数据表时遇到了同样的问题。在 ajax 响应对我有用且没有错误之后调用 destroy 然后重新初始化数据表。 documentation

    $('#myTrigger').click(function(e){        
        e.preventDefault();  
    
        table.destroy();
    
        $.ajax({
            type: 'post',
            url: 'processor.php',
            data: $('#myform').serialize(),
            success: function (response) {                        
                var table = $('#myTable').DataTable({
                    "pageLength": 25
                });
            }
        }); 
    });
    

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多