数据表按刻度和显示日期排序

时间:2013-05-19 15:44:14

标签: javascript datatables

我正在使用Jquery dataTable。执行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”格式的相同值(我不想显示毫秒)并且滴答是不同的

1 个答案:

答案 0 :(得分: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”。假设刻度总是相同的位数,这应该不是问题。