【问题标题】:Datatables - Keeping only selected page number(not order or search or filter) after callback and clear on refresh数据表 - 回调后仅保留选定的页码(不排序或搜索或过滤)并在刷新时清除
【发布时间】:2022-01-02 13:12:30
【问题描述】:

我有一个数据表,我应该对其进行更改,例如,我想更改内容的标题,但该内容位于表的第 6 页。当我更改它时,数据表会自行刷新到第一页。我要做的是保留选定的页码并在刷新后将其回调。我已经尝试了所有解决方案,但我只想保存页码。这可能吗?

<script type="text/javascript">
        $(function () {
        var dataTableoOBJ = $("#forumList").dataTable({
        "lengthChange": true,
        "processing": true,
        "serverSide": true,
        "ajax": "/admin/forums/data",
        "createdRow": function (row, data, rowIndex) {
         $.each($('td', row), function (colIndex) {
         $(this).attr('data-id', data.id);
         });
        },
        'columns': [{...}]
        });
        });
</script>

我也试过

"saveState": true 用于在刷新/重新加载时清除状态

if (performance.navigation.type == 1){
   var table = $('#forumList').DataTable();
   table.state.clear();
   table.ajax.reload();
} 

但它只是清除页码有什么方法可以清除排序/排序/搜索/过滤?

【问题讨论】:

  • 我试过了,但它保存了所有状态,如排序、搜索等。我只想保存数据表的页码。或者有没有什么方法可以在刷新整个页面时清除所有状态,包括排序、搜索、过滤等?
  • 好的,谢谢!它正在工作。顺便说一句,我为我的问题找到了另一种解决方案,我正在为这个问题添加 2 个解决方案。感谢您的帮助。

标签: javascript jquery datatables savestate


【解决方案1】:

我有两个解决这个问题的方法。

解决方案 1:

将这些字段添加到数据表中

 "stateSave": true,
 stateLoadParams: function( settings, data ) {
      var a = data.order;
      if(data.search.search !== '' || a[0][0] !== 0 || data.length !== 10) {
           delete data.order;
           delete data.search;
           delete data.length;
           delete data.start;
           window.location.reload();
       }
       if (data.start === 0) {
           delete data.order;
           delete data.search;
           delete data.length;
           delete data.start;
       }
  }

以及刷新页面所需的操作

if (performance.navigation.type == 1){
     var table = $('#forumList').DataTable();
     table.state.clear();
     table.ajax.reload();
}

解决方案 2:

在数据表中添加"stateSave": true字段

以及刷新页面所需的操作

if (performance.navigation.type == 1){
  var table = $('#forumList').DataTable();
  table.state.clear();
  table.search("").draw(); 
  table.column( '0:visible' ).order( 'asc' ).draw();
  table.page.len(10).draw();
}

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多