0

我有一个使用 jQuery Datatables 1.10.5 的页面。该表工作正常,但我有一个格式为“DM-YY”的日期,例如 10-03-15,(2015 年 3 月 10 日)。

我已将其包含在头中,因此我正在加载 moment.js。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/plug-ins/f2c75b7247b/sorting/datetime-moment.js"></script>

我称之为初始化表:

$(document).ready( function () {
$.fn.dataTable.moment( 'D-M-YY' );
$('.datatable').DataTable({....options here, language etc..

我想知道我做错了什么,因为该列不会按我的日期排序。我已经阅读了 datatable.net 的所有文档,但似乎我正确地调用了它。

*** 更新我可以使用这个插件,它对输入字段进行排序。 http://datatables.net/plug-ins/sorting/custom-data-source/dom-text

我仍然只能按 yyyy-mm-dd 之类的 UNIX 日期排序。我想按自定义日期 dd-mm-yy 排序。我用它来初始化输入字段:

/* 创建一个数组,其中包含一列中所有输入框的值*/

$.fn.dataTable.ext.order['dom-text-numeric'] = function ( settings, col ) 
{return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) 
{ return $('input', td).val() * 1; } ); }

然后我定义日期字段编号。3

$('#example').dataTable( { "columns": [ null, null, { "orderDataType":"dom-text", type: 'text' } ] } );

我什至试过这个:

{ "orderDataType":"dom-text", type: 'date' }

是否有有效值“dom-date”?

4

1 回答 1

0

在我想显示与列排序不同的信息之前,我遇到过类似的情况。这就是我最终得到的结果:

  • 第 1 列:以您想要的任何格式显示日期
  • 第 2 列:使用日期部分将可正确排序的字符串组合在一起,并隐藏此列

然后,使用以下columnDefs定义:

'columnDefs': [
    { 'orderData':[1], 'targets': [0] },
    {
        'targets': [1],
        'visible': false,
        'searchable': false
    },
],

这就是说:当您对第一列进行排序时,使用第二列的值进行排序。

于 2016-07-13T03:50:40.403 回答