【问题标题】:Problems getting jquery datatables to sort special date input fields with moment获取 jquery 数据表以对特殊日期输入字段进行排序时出现问题
【发布时间】:2015-03-05 18:19:48
【问题描述】:

我有一个使用 jQuery Datatables 1.10.5 的页面。该表工作正常,但我有一个格式为“D-M-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”?

【问题讨论】:

标签: jquery jquery-datatables datatables-1.10


【解决方案1】:

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

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

然后,将以下内容用于columnDefs 定义:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多