如何使用JQuery DataTables对每个单元格中值的子字符串进行排序

时间:2012-05-04 16:02:55

标签: jquery sorting jquery-datatables

假设我有一个包含对象标识符的列,其格式为P< 2 digit ye​​ar> - < 4 digit identifier>,例如

P12-3767

我正在使用JQuery DataTables plugin的1.9.1版进行排序和分页。有没有办法可以忽略单元格值的前4个字符(“P12-”部分),这样我才能有效地对标识符的数字部分进行排序?

2 个答案:

答案 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>