0

我正在使用 Jquery 数据表。对服务器进行 ajax 调用以获取包含数据的 json 数组:

[{"ticks":635020621354830000,"created":"20/04/13 13:42","action":"1","reference":"1444","fee":"0.6"},{"ticks":635023360450070000,"created":"23/04/13 17:47","action":"0","reference":"1503","fee":"0.6"},{"ticks":635023360461470000,"created":"23/04/13 17:47","action":"0","reference":"1505","fee":"0.6"}]

然后我用javascript构建一个表并调用 $('#mytable').dataTable({...options}); 我想显示第一列“创建的”数据,但要按“记号”对其进行排序。我该怎么做 ?原因是 json 数组中有许多条目,“created”字段在“dd/MM/yy hh:mm”格式中是相同的值(我不想显示毫秒)并且刻度不同.

4

1 回答 1

2

像现在一样返回刻度,但隐藏它们。使用 iDataSort 参数告诉日期列使用隐藏列进行排序。

看到这个jsfiddle:http: //jsfiddle.net/bFpmJ/

在演示中,单击 Column 0 标题。列 0 的值都是相同的日期,但表格将正确排序。与隐藏列一致的最早/最新的第 1 列标签。

以下是相关代码:

jQuery('#myTable').dataTable(
    { 
    "aoColumns": [
        { "sType":"string", "bSearchable": false, "bVisible":    false },
        { "iDataSort": 0 },
            null,
            null,
            null
        ] 
    }
    );

请注意,第一列是不可见且不可搜索的。此外,由于数字的长度,默认的 DataTables 排序不起作用(也许它无法处理long那个长度,我不确定) - 你可以通过删除“sType”来看到这一点:“ string”,然后尝试按第 0 列排序。所以我不得不将“sType”更改为“string”。假设刻度总是相同的位数,这应该不是问题。

于 2013-05-20T10:18:16.243 回答