首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JQuery数据表中重置分页

如何在JQuery数据表中重置分页
EN

Stack Overflow用户
提问于 2013-09-04 08:07:50
回答 3查看 19.2K关注 0票数 5

我有一个通过JQuery请求加载数据的ajax数据表。表旁边有一个表单,让用户可以在服务器上过滤结果。当用户更改筛选器表单时,我使用新的筛选器数据调用fnReloadAjax(),然后使用新的经过筛选的结果重绘表格。

我遇到的问题是,即使表中不再有足够的项到达当前页面,分页仍然存在。因此,如果该表最初有20个项目,并且用户位于第2页(每页10个项目),并且他们更改了筛选器,以便只返回5个项目,则该表不显示任何项目,并在底部显示以下内容:

代码语言:javascript
复制
Showing 11 to 5 of 5 entries

它仍然在第二页,即使只有一页的数据。

我发现了许多关于试图保留当前页面/行的帖子,但没有一个帖子显示了将分页重置到第一页的简单方法。执行此操作的最简单方法是什么?

为了清楚起见,下面是我的代码的简化版本:

代码语言:javascript
复制
$("#mytable").dataTable({
    bStateSave: false,
    fnServerData: function (sSource, aoData, fnCallback) {
        return $.ajax({
            type: "POST",
            url: url,
            data: {filter: filterValue}
        });
    }
});

$("#myForm").submit(function(e) {
    table.fnReloadAjax();
    return false;
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-05 04:49:18

您可以在重新加载后显式跳转到第一页,请参阅http://datatables.net/api#fnPageChange

代码语言:javascript
复制
$("#myForm").submit(function(e) {
    table.fnPageChange(0);
    table.fnReloadAjax();
    return false;
});
票数 4
EN

Stack Overflow用户

发布于 2013-11-01 22:28:39

接受@Gigo给出的解决方案:

代码语言:javascript
复制
$("#myForm").submit(function(e) {
    table.fnPageChange(0);
    table.fnReloadAjax();
    return false;
});

这有一个问题,它向服务器发送了两个请求。

我发现fnPageChange会在第一时间做这件事。

代码语言:javascript
复制
$("#myForm").submit(function(e) {
    table.fnPageChange(0);
    return false;
});
票数 1
EN

Stack Overflow用户

发布于 2016-01-20 16:51:05

这可以通过实现保存和加载datatable状态的函数并重置起始点来解决-示例如下

代码语言:javascript
复制
 "fnStateSave": function (oSettings, oData) {  
  localStorage.setItem( 'MyDataTable', JSON.stringify(oData) ); 
   },
  "fnStateLoad": function (oSettings) {
      var settings = JSON.parse( localStorage.getItem('MyDataTable') );
      settings.iStart = 0;  // resets to first page of results
      return settings
  },

当重新装入表时调用fnStateLoad时-例如,应用新的过滤器-分页被重置到开始处。

每次检索下一页结果时都会调用fnStateSave

这种方法避免了向服务器返回额外请求的开销

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18603386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档