2015-06-20 75 views
0

我有表的日期栏:如何在数据表中进行自定义日期排序?

2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 

但有些细胞没有日期(我将其标记-)。当我使用的是一般的排序功能,它看起来像:

— 
— 
— 
2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 

,但我需要:

2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 
— 
— 
— 
+1

请提供一些样本HTML –

+1

你能为它提供小提琴? –

+1

我改进了格式并修正了一些拼写错误以提高可读性。我还编辑了问题的标题以更好地反映您的问题。 – Ram

回答

0

其实,我在表的末尾而不日期由两个参数,也可以设置行排序。 我添加了两个数据属性(身份和日期时间戳格式):

<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397562467">Status 0</span></td> 
    <td>2015-03-03 20:14</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="1" data-date="1397567321">Status 1</span></td> 
    <td>2015-04-15 20:33</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397567746">Status 0</span></td> 
    <td>2015-04-20 09:34</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397567321">Status 0</span></td> 
    <td>2015-04-15 20:33</td> 
</tr> 

我提出了新的自定义排序功能:

jQuery.fn.dataTableExt.oSort['status-date-asc'] = function(x,y) { 

       var xStatus, xDate, yStatus, yDate; 

       xStatus = $(x).data('status'); 
       yStatus = $(y).data('status'); 
       xDate = $(x).data('date'); 
       yDate = $(y).data('date'); 

       return xStatus > yStatus ? 1 
         : xStatus < yStatus ? -1 
         : xDate > yDate ? 1 
         : xDate < yDate ? -1 : 0; 

      }; 

和init此行与新的排序功能:

 var currentTable = $('#current_table').dataTable({ 

      "aaSorting": [ [5, 'asc'] ], 
      "aoColumns": [ 
       null, 
       null, 
       null, 
       null, 
       null, 
       { "sType": 'status-date' }, 
       null, 
       null, 
       null 
      ], 
     }); 

最后看起来:

  • 个状态0,日期2015年3月3日= 20:14
  • 状态0,日期2015年4月15日= 20时33
  • 状态0,日期2015年4月20日= 9点34
  • 状态0,日期2015年4月28日= 22:18
  • 状态0,日期= N/A
  • 状态0,日期= N/A
  • 状态0,日期= N/A
  • 状态1 ,date = 2015-03-03 20:14
  • status 1,date = 2015-04-15 20:33
  • 状态1,日期2015年4月20日= 9点34
  • 状态1,日期2015年4月28日= 22:18
  • 状态1,日期= N/A
  • 状态1,日期= N/A
  • 状态1,日期= N/A
+0

这是所需的输出?这是解决您的问题吗? – showdev

+0

是的,这是解决方案 –

相关问题