服务器端 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() 不清除行[重复]
如何使用 ngx-datatable 实现服务端分页+服务端排序