我正在使用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);
}
});
}
我曾经调用上面这个函数来删除记录,并且成功时它会重新加载表,但是如果该页面上没有记录,则会在同一页面上重新加载。
答案 0 :(得分: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
答案 1 :(得分:0)
//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 );