我正在使用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”格式的相同值(我不想显示毫秒)并且滴答是不同的
答案 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”。假设刻度总是相同的位数,这应该不是问题。