我已经排了remove()
行,然后我尝试fnDestroy()
并初始化 DataTable 。 记录计数和分页不受影响(* DataTable 未刷新) *。
我也试过使用fnDraw()
,但它仍然没用。
我查看了页面源代码,删除的行html仍然存在。
我正在使用 Ajax 删除该行。感谢您的帮助
这是我的删除脚本:
$(document).ready(function()
{
$('table#sample_1 td a.delete').click(function()
{
if (confirm("Are you sure you want to delete this row?"))
{
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
$.ajax(
{
type: "POST",
url: "process.php",
dataType: "json",
data: data,
cache: false,
success: function()
{
var dtable = $('#sample_1').dataTable();
dtable.fnDestroy();
parent.fadeOut('slow', function() {$(this).remove();});
//Reinitialize the datatable
$('#sample_1').dataTable({
"sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
"sPaginationType": "bootstrap",
"oLanguage": {
"sLengthMenu": "_MENU_ records per page",
"oPaginate": {
"sPrevious": "Prev",
"sNext": "Next"
}
},
"aoColumnDefs": [{
'bSortable': false,
'aTargets': [0]
}]
});
}
});
}
});
});
</script>
答案 0 :(得分:2)
您可以使用fnDeleteRow删除数据表中的行。此功能将自动重绘表格。
答案 1 :(得分:1)
您可以使用此代码:
var rowid = document.getElementById(id);
var Pos = dt.fnGetPosition(rowid);
dt.fnDeleteRow(Pos);
此处id是您要删除的唯一行ID。
答案 2 :(得分:1)
它将在初始化时缓存所有信息,当您尝试执行某些操作(即排序)时,它将使用现有数据集重新绘制表。因此,您应该使用 draw(false)来防止重新绘制。
table.row('.selectedRow').remove().draw( false );