jquery datatable在添加新数据时再次将删除的记录添加到datatable

时间:2014-11-19 13:29:27

标签: jquery jquery-datatables

我正在使用jquery DataTables,我使用ajax使用

向表中添加更多行
 


     $.each(response.aaData, function (key, value) {
                                var TicketId = value[0];
                                var FullName = value[1];
                                var TicketName = value[2];
                                var ReferenceNo = value[3];
                                var StartDate = value[4];
                                var ExpiryDate = value[5];
                                var Status = value[6];
                                var UserId = value[7];

                                var rowNode = oDTable.row.add([
                                  TicketId,
                                   FullName,
                ' ' + TicketName,
                                  ReferenceNo,
                                  StartDate,
                                  ExpiryDate,
                                  "" + Status + "",
                                  UserId,

                                ]).draw().node();


它完美地添加了行..

我有一个删除按钮来删除所有行。这里我使用删除代码



$('#EmployeesTicketsDT').on('click', 'tr.group button.del', function (e) {
        var confirm = window.confirm("This will remove usertickets from list, Do you want to   proceed?");
        if (confirm) {                                        $('#EmployeesTicketsDT').DataTable().row($(this).closest('tr').nextUntil('tr.group').remove())
            $('#EmployeesTicketsDT').DataTable().row($(this).closest('tr').remove())
        }
    });


它将删除特定组下的所有行,并在到达下一组时停止。

但是当我重新添加记录时,它会添加一个带有ajax命中的双记录,而另一个记录是旧记录...已经通过了。

它应该只添加新记录而不是旧记录...请帮助...

2 个答案:

答案 0 :(得分:1)

经过很长一段时间我得到了这个问题的解决方案,

我是用户

.empty()
而不是
.remove()

$('#EmployeesTicketsDT').on('click', 'tr.group button.del', function (e) {
        var confirm = window.confirm("This will remove usertickets from list, Do you want to   proceed?");
        if (confirm) {                                        $('#EmployeesTicketsDT').DataTable().row($(this).closest('tr').nextUntil('tr.group').empty())
            $('#EmployeesTicketsDT').DataTable().row($(this).closest('tr').empty())
        }
    });

答案 1 :(得分:0)

尝试添加

"bDestroy" : true

在您的数据表对象init中,或者您也可以

 $('yourtable').dataTable().fnDestroy();

然后重新创建它。