【问题标题】:Refresh DataTable after a remove() doneremove() 完成后刷新 DataTable
【发布时间】:2013-09-01 09:09:01
【问题描述】:

我已经完成了一行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>

【问题讨论】:

  • 试试$("element").hide().fadeIn('fast');

标签: jquery html ajax datatable


【解决方案1】:

您可以使用 fnDeleteRow 删除数据表中的一行。这个函数会自动重绘表格。

参考这个,http://datatables.net/api

【讨论】:

  • 我正在尝试使用 ajax,有些人还表示即使在执行 fnDeleteRow 之后,它也不会引用表格。而且我还使用复选框来删除行。有没有其他解决方案?非常感谢:D
【解决方案2】:

您可以使用此代码:

var rowid = document.getElementById(id);
var Pos = dt.fnGetPosition(rowid);
dt.fnDeleteRow(Pos);

这里 id 是您要删除的唯一行 ID。

【讨论】:

    【解决方案3】:

    它将缓存初始化中的所有信息,当您尝试执行某些操作(即排序)时,它将使用现有数据集重新绘制表格。因此,您应该使用 draw( false ) 来防止重新绘制。

     table.row('.selectedRow').remove().draw( false );
    

    【讨论】:

    • 请添加一些解释为什么此代码有助于 OP。这将有助于为未来的观众提供一个可以学习的答案。请参阅How to Answer 了解更多信息。
    • @MikeMcCaughan 你是对的。我改变了答案。感谢您引起我的注意。
    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 2013-12-12
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 2011-07-06
    相关资源
    最近更新 更多