【问题标题】:How to stay on the active page in jquery DataTable如何留在jquery DataTable中的活动页面
【发布时间】:2015-04-13 06:32:32
【问题描述】:
我在 jquery dataTable 上列出了几个数据,并通过 DataTable 插件默认完成了分页。我想在处理数据时获取 dataTable 的当前页面,并在处理完操作并重新加载数据后将该页面设置为活动状态。
【问题讨论】:
标签:
javascript
jquery
datatables
jquery-datatables
【解决方案1】:
看这个小提琴。您可以查看如何获取当前页面。在 JSFiddle 中,您可以尝试刷新浏览器。例如,假设当前页面现在是 3。当您刷新浏览器时,您仍然在第 3 页。
为了解决您想在编辑或删除行时返回最后一页的问题,您必须使用此选项使 jquery 数据表记住最后一页的位置。 Jquery Datatable 将保存表的状态(其分页位置、排序状态等)。状态保存方法使用 HTML5 localStorage 和 sessionStorage API 来高效存储数据。请参阅此链接以阅读有关它的更多详细信息。 State saving
"bStateSave": true
JSFiddle 链接
Fiddle Demo
Javascript 代码
$(document).ready(function() {
var table = $('#example').DataTable({
"sPaginationType": "full_numbers",
"bStateSave": true
});
$("#example").on('page.dt', function () {
var info = table.page.info();
$('#pageInfo').html('Currently showing page ' + (info.page + 1) + ' of ' + info.pages + ' pages.');
});
} );
【解决方案2】:
仅使用 stateSave: true
像这样:
$(document).ready(function() {
$('#tableId').DataTable( {
stateSave: true
} );
})
【解决方案3】:
从数据表复制
var table = $('#example').DataTable( {
ajax: "data.json"
} );
setInterval( function () {
table.ajax.reload( null, false ); // user paging is not reset on reload
}, 30000 );
在重新加载函数时传递 null、false 以在重新加载表格时停留在该页面上。有关详细信息,请参阅 ajax.reload() 文档。
【解决方案4】:
请参阅dataTables 文档,该文档提供了一个回调函数,您可以从中获取当前页面:
$('#example').dataTable( {
"drawCallback": function( settings ) {
var api = new $.fn.dataTable( settings );
// Output the data for the visible rows to the browser's console
// You might do something more useful with it!
console.log( api.rows( {page:'current'} ).data() );
}
});
【解决方案5】:
在初始化数据表的地方添加这个
"drawCallback": function( settings ) {
alert ( 'You are on ssame page' );
}
它对我有用:)