2013-05-19 128 views
0

我正在使用jquery dataTable。做AJAX调用服务器,以获得JSON阵列数据:datatables排序蜱和显示日期

[{"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({...}选项)。 我想显示“创建”数据的第一列,但要按“标记”对其进行排序。我该怎么做 ? 它的原因,所以有很多条目在json数组中,“创建”字段是“dd/MM/yy hh:mm”格式中的相同值(我不想显示毫秒)并且刻度是不同。

回答

2

按照现在的方式返回刻度但隐藏它们。使用iDataSort参数告诉日期列使用隐藏列进行排序。

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

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

下面是相关代码:

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

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