【问题标题】:jquery datatable not reset after deleting last record from a page从页面中删除最后一条记录后,jquery数据表未重置
【发布时间】:2017-11-03 10:15:58
【问题描述】:

我正在使用带有状态保存的jQuery datatable:true 具有每页 10 条记录的分页。我有 31 条记录,所以第 4 页只有 1 条记录。

如果我要删除这条记录,它会显示在页面上找不到记录,理想情况下它应该移到上一页或第一页。

请帮我解决这个问题。

下面是代码

dataTable = $('.tab-pane.active').find('#' + table).DataTable({
                "lengthMenu": [[10, 25, 50, 100, 250, 500, '-1'], [10, 25, 50, 100, 250, 500, 'All']],
                "processing": true,
                "serverSide": true,
                "responsive": true,
                "scrollX": true,
                "autoWidth": false,
                "stateSave": true,
                "stateSaveParams": function (settings, data) {
                    data.search.search = "";
                },
                "aoColumnDefs": [
                    {'bSortable': false, 'aTargets': [-2, -1]}
                ],
                "initComplete": function ( ) {
                    $('.overlay').fadeOut();
                },
                "ajax": {
                    url: MY_URL,
                    type: "POST", // method  , by default get
                    data: postObj
                }
            }).on('preXhr.dt', function (e, settings, data) {
                if (settings.jqXHR)
                    settings.jqXHR.abort();
            });

要删除的操作是

academic_master.deleteMaster = function (currentClick)
        {
            var id = currentClick.attr('data-id');
            var delete_id = currentClick.attr('delete-id');
            var action = currentClick.attr('action');

            var data = 'id=' + id + '&delete_id=' + delete_id + '&action=' + action;
            $.ajax({
                type: 'POST',
                url: DELETE_URL,
                data: data,
                datatype: 'json',
                async: false,
                success: function (response) {
                    if (response != '-1' && response != '-20')
                    {
                        dataTable.ajax.reload(null, false);
}
});
}

我曾经调用上面的这个函数来删除记录,如果该页面上没有记录,它会重新加载表但在同一页面上。

【问题讨论】:

  • 如何删除表格的行?您使用的是其他功能吗?
  • 嗨,我已经更新了代码

标签: javascript jquery datatable


【解决方案1】:

根据文档,您的方法不会重置分页。

// user paging is not reset on reload
dataTable.ajax.reload( null, false );

如果您在该行下方使用,您的分页将重置。但它不会移动到上一页。

dataTable.ajax.reload();

建议:如果您遵循这种方法,您将能够改进功能/可用性 https://datatables.net/examples/api/select_single_row.html

【讨论】:

  • 非常感谢,成功了!!我已经从 reload 函数中删除了参数。
【解决方案2】:
//create data table object

var dataTable = $('#tableView').DataTable();

//add class "selected" to the row selected

dataTable.$('tr.selected').addClass('selected');

//I have a button in one of the td of the row. onclicking the button, I assign the class "selected" to the row

$(ths).parents('tr').addClass('selected');

//to delete or remove the row, call the below code

dataTable.row('.selected').remove().draw( false );

【讨论】:

    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多