使用jquery-datatables。
示例:http://jsfiddle.net/b2fLye17/17/
$('#example').DataTable({
filter:false,
columnDefs: [
{
targets: [1],//when sorting age column
orderData: [1,2] //sort by age then by salary
}
]
});
单击年龄列时,表格按年龄递增,然后按工资升序排序。
根据年龄上升然后按工资下降,我可以选择哪种方式进行排序?
谢谢!
--------------------------编辑1 ------------------- -
澄清:当年龄列按升序排序时,它应按年龄递增,然后按工资降序排序。当年龄列按降序排序时,它应按年龄递减,然后按工资升序排序
--------------------------编辑2 ------------------- -
所需结果
的图片答案 0 :(得分:2)
使用
$(document).ready(function() {
$('#example').DataTable({
filter:false,
columnDefs: [
{
orderData: [[1, 'asc'], [2, 'desc']]//sort by age then by salary
}
]
});
});
JS小提琴
http://jsfiddle.net/b2fLye17/13/
答案 1 :(得分:2)
感谢您提出这个问题,我也遇到了同样的问题,然后解决了以下问题
var oTable=$('#example').dataTable({
filter:false
});
oTable.fnSort( [[1,"asc"], [2,"desc"]]);
希望这有用
答案 2 :(得分:1)
在这里。它有点被黑,但是我一直在花费HOURS试图找出相同的最终目标 - 从两列中排序。 http://jsfiddle.net/b2fLye17/23/
<td data-age="40">$320</td>
//In custom sort:
var value = parseInt($(td).attr('data-age') + pad(td.innerHTML.substring(1), 10, '0'));
概念: 我还没有找到一种方法来访问foreach循环中列外的其他单元格,所以我添加了一个&#34;数据 - &#34;属性到我们想要排序的单元格。这个数据属性与我们关心的另一个排序列具有相同的值...所以在我们弄清楚如何访问其他相邻的&#39;之前,会有一些重复的数据。循环中的细胞。
我合并了两个值(隐藏属性和可见值),然后转换回要编入索引的int。由于值的长度不同,我用零填充第二列(4086 vs 40086)。
答案 3 :(得分:1)
您可以var row = settings.aoData._aData[i];
获取行中的所有数据并将其与j0xue解决方案相结合,这样您就可以按照另一列进行排序,而无需在html中添加属性。