remove()完成后刷新DataTable

时间:2013-08-29 04:37:13

标签: jquery html ajax datatable

我已经排了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>

3 个答案:

答案 0 :(得分:2)

您可以使用fnDeleteRow删除数据表中的行。此功能将自动重绘表格。

请参阅此http://datatables.net/api

答案 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 );