2017-04-12 68 views
1

我有一個簡單的jquery-datatable,它允許基本的sortingpagination功能。考慮下面data-tables片斷如何在排序數據表時避免分頁復位

$(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中通過其他各種職位,但沒有人在解決這個問題。

+0

你可以請一把小提琴並分享那個小提琴的鏈接嗎? –

+0

是的,這是預期的行爲,因爲當排序發生時,你需要查看排序後到達的第一條記錄。 –

+0

@MayankPandeyz我已經添加了片段而不是jsfiddle,因爲它在SO中是非常可取的.. –

回答

1

基於線程的通信: - https://datatables.net/forums/discussion/21001/how-to-keep-current-page-after-sorting

的調查結果是: -

如果你的意思是在標題的點擊觸發排序,那麼,這將永遠跳你回第一頁,沒有修改DataTables,或將自己的排序/點擊偵聽器應用到標題元素,沒有辦法。

所以基本上這是不可能的默認情況下(意味着datatables不提供此功能)。

您可以提出一個問題到datatables Site,並要求他們這樣做,並將其添加爲現有庫的更新。

也許他們會這樣做。

+0

我認爲他們不會這樣做因爲在線程討論的許多情況下它沒有任何意義..所以我寧願讓自己滿意這些解釋,並告訴我的客戶.. :) –

+1

你可以嘗試提出問題,因爲它似乎是新功能。另外'應用你自己的排序/點擊監聽器到標題元素。並在該點擊嘗試重新繪製頁碼和您自己的排序表。順便說一句,我不知道如何做到這一點。):) –