假设我有一列包含格式为 P<2 digit year>-<4 digit identifier> 的对象标识符,例如
P12-3767
我正在使用 1.9.1 版的 JQuery DataTables 插件进行排序和分页。有没有一种方法可以忽略单元格值的前 4 个字符(“P12-”部分),以便有效地仅对标识符的数字部分进行排序?
假设我有一列包含格式为 P<2 digit year>-<4 digit identifier> 的对象标识符,例如
P12-3767
我正在使用 1.9.1 版的 JQuery DataTables 插件进行排序和分页。有没有一种方法可以忽略单元格值的前 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" %>
包含 data-sort 属性,指定要排序的子字符串
<td data-sort="${fn:substringAfter('P12-3767', 'P12-')}">P12-3767</td>