服务器端 DataTable JS clear() 不工作

Posted

技术标签:

【中文标题】服务器端 DataTable JS clear() 不工作【英文标题】:Serverside DataTable JS clear() not working 【发布时间】:2019-03-04 04:25:03 【问题描述】:

在一个 Laravel 项目中,我使用 DataTable JS(带有服务器端处理)来显示表格。我想要一些我想使用 DataTable 的 API 的自定义功能,尝试了一段时间,但我无法清除 dataTable 以插入新数据并重绘它。你能帮我解决这个问题吗?

这是我的 JS 代码的相关部分

初始化数据表

      dt = $('#dataTable').DataTable(
            'processing': true,
            'serverSide': true,
            'select': 'multiple',
            'ajax': 
                'url' :'!! url('/') !!/newOrderData',
                'type': 'POST',
                'headers': 
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                
            ,
            'columns': [
                 'data': 'id', 'name': 'id' ,
                 'data': 'name', 'name': 'name' ,
                 'data': 'area', 'name': 'area' ,
                 'data': 'estimate', 'name': 'estimate' ,
            ],
            "columnDefs": [
                 className: "orderId", "targets": [ 0 ] 
             ]
        );

尝试清除数据并用新的重绘

        $('#areas').change(function()
           var areaId = $(this).val();
           var token = " csrf_token() ";

           dt.clear().draw();

           $.post('!! url('/') !!/newOrderData',area: areaId,_token:token, function(newDataArray) 


                dt.rows.add(newDataArray); // Add new data
                dt.draw(); 

            );

        );

当更改事件处理程序被触发时,什么都没有发生,没有错误,表显示一个处理标志,但一切都保持不变。

我在关注this question。但该解决方案似乎对我不起作用。请帮忙。

【问题讨论】:

【参考方案1】:

试试这个代码来清除你的数据,

$('#areas').change(function()
           var areaId = $(this).val();
           var token = " csrf_token() ";
           var dt = $('#dataTable').DataTable(); //create new object of the datatable
           dt.clear().draw();

           $.post('!! url('/') !!/newOrderData',area: areaId,_token:token, function(newDataArray) 


                dt.rows.add(newDataArray); // Add new data
                dt.draw(); 

            );

        );

我也遇到过这个问题,这个解决方案对我有用。

希望这对你有用。

【讨论】:

以上是关于服务器端 DataTable JS clear() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

C# DataTable.Rows.Clear() 不清除行[重复]

关于c#中的datatable,不知道如何清空里面的数据

dataTable插件的使用

如何使用 ngx-datatable 实现服务端分页+服务端排序

无法通过服务器端处理显示 jQuery Datatable 的数据

RichFaces 中的服务器端 DataTable 排序