假設我有一列包含對象標識符,格式爲P < 2位數字年> - < 4位數標識符>例如,如何使用JQuery DataTables對每個單元格中的值的子字符串上的列基進行排序
P12-3767
我使用jQuery DataTables plugin的1.9.1版本排序和分頁。有沒有一種方法可以忽略單元格值的前4個字符(「P12-」部分),以便對標識符的數字部分進行有效排序?
假設我有一列包含對象標識符,格式爲P < 2位數字年> - < 4位數標識符>例如,如何使用JQuery DataTables對每個單元格中的值的子字符串上的列基進行排序
P12-3767
我使用jQuery DataTables plugin的1.9.1版本排序和分頁。有沒有一種方法可以忽略單元格值的前4個字符(「P12-」部分),以便對標識符的數字部分進行有效排序?
您可以簡單地在查詢中創建一個列,它是您正在查找的原始字符串的子字符串版本。然後,在排序時,按子串列而不是原始順序排序。這是一個數據庫方面的解決方案,如果您使用服務器端分頁功能,這將非常有效。
您也可以捕捉排序順序和方向是通過什麼:
$(oSettings.aoColumns[oSettings.aaSorting[0][0]].nTh).attr('innerText');
所以,你可以包括的子列在您的原始查詢,隱藏它,那麼當點擊排序順序列你想要子字符串...將排序改爲隱藏的列。不知道你會在哪裏做,可能在fnPreDrawCallback中。
在JSP頁面導入JSTL功能
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
包括數據排序屬性指定字符串進行排序
<td data-sort="${fn:substringAfter('P12-3767', 'P12-')}">P12-3767</td>