排序数据表时如何避免分页重置 [英] How to avoid pagination reset while sorting datatables

查看:80
本文介绍了排序数据表时如何避免分页重置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的jquery-datatable,它允许基本的sortingpagination功能.考虑下面的data-tables代码段

I am having a simple jquery-datatable which allows basic sorting and pagination functionality. Consider below data-tables snippet

$(document).ready(function() {
  $('#example').dataTable({
    "sPaginationType": "full_numbers"
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/jquery.dataTables.min.js"></script>

<link href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/css/jquery.dataTables.css" rel="stylesheet" />

<table cellpadding="0" cellspacing="0" border="0" class="dataTable" id="example">
  <thead>
    <tr>
      <th>Rendering engine</th>
      <th>Browser</th>
      <th>Platform(s)</th>
      <th>Engine version</th>
      <th>CSS grade</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Trident</td>
      <td>Internet Explorer 4.0</td>
      <td>Win 95+</td>
      <td> 4</td>
      <td>X</td>
    </tr>
    <tr>
      <td>Trident</td>
      <td>Internet Explorer 5.0</td>
      <td>Win 95+</td>
      <td>5</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Trident</td>
      <td>Internet Explorer 5.5</td>
      <td>Win 95+</td>
      <td>5.5</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Trident</td>
      <td>Internet Explorer 6</td>
      <td>Win 98+</td>
      <td>6</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Trident</td>
      <td>Internet Explorer 7</td>
      <td>Win XP SP2+</td>
      <td>7</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Trident</td>
      <td>AOL browser (AOL desktop)</td>
      <td>Win XP</td>
      <td>6</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Firefox 1.0</td>
      <td>Win 98+ / OSX.2+</td>
      <td>1.7</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Firefox 1.5</td>
      <td>Win 98+ / OSX.2+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Firefox 2.0</td>
      <td>Win 98+ / OSX.2+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Firefox 3.0</td>
      <td>Win 2k+ / OSX.3+</td>
      <td>1.9</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Camino 1.0</td>
      <td>OSX.2+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Camino 1.5</td>
      <td>OSX.3+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Netscape 7.2</td>
      <td>Win 95+ / Mac OS 8.6-9.2</td>
      <td>1.7</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Netscape Browser 8</td>
      <td>Win 98SE+</td>
      <td>1.7</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Netscape Navigator 9</td>
      <td>Win 98+ / OSX.2+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.0</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.1</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.1</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.2</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.2</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.3</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.3</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.4</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.4</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.5</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.5</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.6</td>
      <td>Win 95+ / OSX.1+</td>
      <td>1.6</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.7</td>
      <td>Win 98+ / OSX.1+</td>
      <td>1.7</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Mozilla 1.8</td>
      <td>Win 98+ / OSX.1+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Seamonkey 1.1</td>
      <td>Win 98+ / OSX.2+</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Gecko</td>
      <td>Epiphany 2.20</td>
      <td>Gnome</td>
      <td>1.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>Safari 1.2</td>
      <td>OSX.3</td>
      <td>125.5</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>Safari 1.3</td>
      <td>OSX.3</td>
      <td>312.8</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>Safari 2.0</td>
      <td>OSX.4+</td>
      <td>419.3</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>Safari 3.0</td>
      <td>OSX.4+</td>
      <td>522.1</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>OmniWeb 5.5</td>
      <td>OSX.4+</td>
      <td>420</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>iPod Touch / iPhone</td>
      <td>iPod</td>
      <td>420.1</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Webkit</td>
      <td>S60</td>
      <td>S60</td>
      <td>413</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 7.0</td>
      <td>Win 95+ / OSX.1+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 7.5</td>
      <td>Win 95+ / OSX.2+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 8.0</td>
      <td>Win 95+ / OSX.2+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 8.5</td>
      <td>Win 95+ / OSX.2+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 9.0</td>
      <td>Win 95+ / OSX.3+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 9.2</td>
      <td>Win 88+ / OSX.3+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera 9.5</td>
      <td>Win 88+ / OSX.3+</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Opera for Wii</td>
      <td>Wii</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Nokia N800</td>
      <td>N800</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Presto</td>
      <td>Nintendo DS browser</td>
      <td>Nintendo DS</td>
      <td>8.5</td>
      <td>C/A<sup>1</sup></td>
    </tr>
    <tr>
      <td>KHTML</td>
      <td>Konqureror 3.1</td>
      <td>KDE 3.1</td>
      <td>3.1</td>
      <td>C</td>
    </tr>
    <tr>
      <td>KHTML</td>
      <td>Konqureror 3.3</td>
      <td>KDE 3.3</td>
      <td>3.3</td>
      <td>A</td>
    </tr>
    <tr>
      <td>KHTML</td>
      <td>Konqureror 3.5</td>
      <td>KDE 3.5</td>
      <td>3.5</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Tasman</td>
      <td>Internet Explorer 4.5</td>
      <td>Mac OS 8-9</td>
      <td>-</td>
      <td>X</td>
    </tr>
    <tr>
      <td>Tasman</td>
      <td>Internet Explorer 5.1</td>
      <td>Mac OS 7.6-9</td>
      <td>1</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Tasman</td>
      <td>Internet Explorer 5.2</td>
      <td>Mac OS 8-X</td>
      <td>1</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>NetFront 3.1</td>
      <td>Embedded devices</td>
      <td>-</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>NetFront 3.4</td>
      <td>Embedded devices</td>
      <td>-</td>
      <td>A</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>Dillo 0.8</td>
      <td>Embedded devices</td>
      <td>-</td>
      <td>X</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>Links</td>
      <td>Text only</td>
      <td>-</td>
      <td>X</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>Lynx</td>
      <td>Text only</td>
      <td>-</td>
      <td>X</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>IE Mobile</td>
      <td>Windows Mobile 6</td>
      <td>-</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Misc</td>
      <td>PSP browser</td>
      <td>PSP</td>
      <td>-</td>
      <td>C</td>
    </tr>
    <tr>
      <td>Other browsers</td>
      <td>All others</td>
      <td>-</td>
      <td>-</td>
      <td>U</td>
    </tr>
  </tbody>
</table>

因此,如果您看到此功能,则只要在paginate到其他页面并单击列排序时,它实际上就会重置pagination.

So if you see the functionality, whenever you paginate to other pages and click column sorting, it actually resets the pagination.

这是预期的行为吗?反正有什么要克服的?

Is this the expected behaviour? Is there anyway to overcome this?

在SO中浏览了其他各种文章,但没有人讨论解决此问题.

Went through various other Posts in SO but none were regarding resolving this issue.

推荐答案

基于线程上的通信:-

Based on the communication on the thread:- https://datatables.net/forums/discussion/21001/how-to-keep-current-page-after-sorting

调查结果是:-

如果您是指单击标题以触发排序,那么是的,它将始终使您跳回到第一页,如果不修改DataTables或对标题应用您自己的sort/click侦听器,则无法解决该问题元素.

If you mean the click on the header to trigger sort, then yes, that will always jump you back to the first page, there is no way around that without modifying DataTables, or applying your own sort / click listener to the header elements.

因此基本上默认情况下是不可能的(意味着数据表不提供此功能).

So basically it's not possible by-default(means datatables doesn't provide this feature).

您可以向 datatables网站提出问题,并要求他们进行此操作并将其添加为该更新现有的图书馆.

You can raise a question to datatables Site and ask them to do this and added it as an update to there existing library.

也许他们会这样做.

这篇关于排序数据表时如何避免分页重置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆