假设我有一个包含对象标识符的列,其格式为P< 2 digit year> - < 4 digit identifier>,例如
P12-3767
我正在使用JQuery DataTables plugin的1.9.1版进行排序和分页。有没有办法可以忽略单元格值的前4个字符(“P12-”部分),这样我才能有效地对标识符的数字部分进行排序?
答案 0 :(得分:0)
您只需在查询中创建一个列,该列是您要查找的原始字符串的子字符串版本。然后,在排序时,按子串列而不是原始列排序。这是一个数据库端解决方案,如果您使用服务器端分页,它将非常有用。
您还可以通过以下方式捕获排序顺序和方向:
$(oSettings.aoColumns[oSettings.aaSorting[0][0]].nTh).attr('innerText');
因此,您可以在原始查询中包含子字符串列,将其隐藏,然后在单击的排序顺序是您要子字符串的列时...将排序更改为隐藏列。不知道你在哪里这样做,可能在fnPreDrawCallback中。
答案 1 :(得分:0)
在jsp页面中导入jstl函数
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
包含指定要排序的子字符串的数据排序属性
<td data-sort="${fn:substringAfter('P12-3767', 'P12-')}">P12-3767</td>