【问题标题】: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' );
        }
        

        它对我有用:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-03
          • 2019-04-23
          • 1970-01-01
          相关资源
          最近更新 更多