我有一个用 jquery dataTables 构建的 htnl 表。我使用的代码是:
var oTable = jQuery('#webcam-table').dataTable({
"sPaginationType": "full_numbers",
"bStateSave": true,
"aaSorting": [[1,"desc"]],
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 4 ] }
]
});
该表还有一个表单,每行都有一个复选框,用户可以在其中选择一个或多个并单击删除按钮。这使用 jquery ajax
:
jQuery(".deletebutton").on("click", function(e) {
e.preventDefault(); //cancel click event on start
var testchecked = jQuery(':checkbox:checked').length;
if (testchecked == 0) {
alert('Please select at least one video');
e.preventDefault();
}
else
{
if (confirm("Are you sure you want to delete the selected videos?"))
{
var checked = jQuery('input:checkbox:checked').map(function () {
return this.value;
}).get();
var $this = jQuery(this);
jQuery.ajax({
type: 'POST',
url: 'index.php?option=com_recordings&task=deletevideos&format=raw',
data: {checkedarray:checked},
success: function(data){
jQuery('#deleteform input:checkbox').each(function(){
if(this.checked){
jQuery('input:checkbox:checked').parents("tr").remove();
}
});
}
});
}
}
});
它的作用是删除表中的一行。这是我对 dataTable 遇到问题的地方,因为它有页面,当我删除一个或多个页面时,它不会刷新表格。
所以我想我应该能够将 fnDraw
添加到代码中:
jQuery('#deleteform input:checkbox').each(function(){
if(this.checked){
jQuery('input:checkbox:checked').parents("tr").remove();
}
oTable.fnDraw();
我认为这会在我的 AJAX 删除和删除该行之后刷新表格。但这甚至不再删除该行,也不会相应地更新表。当然,当我手动刷新页面时,一切都很好。关于如何删除所选行然后刷新数据表有什么想法吗?
最佳答案
DataTable API具有删除行功能。
fn删除行 删除表格的一行
输入参数:
- {mixed}:aoData中要删除的行的索引,或TR 您要删除的元素
- {function|null}:回调函数
- {bool} [default=true]:是否重绘表格
返回参数:
{array}:被删除的行
代码示例:
$(document).ready(function() {
var oTable = $('#example').dataTable();
// Immediately remove the first row
oTable.fnDeleteRow( 0 );
} );
关于jquery datatables - 刷新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351076/