我使用的是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});我想要显示第一列“创建的”数据,但要按"ticks“对其进行排序。我该怎么做呢?原因是在json数组中有许多条目,"created“字段是"dd/MM/yy hh:mm”格式的相同值(我不想显示毫秒),而刻度是不同的。
发布于 2013-05-20 10:18:16
像现在一样返回刻度,但要隐藏它们。使用iDataSort参数告诉date列使用隐藏列进行排序。
查看jsfiddle:http://jsfiddle.net/bFpmJ/
在演示中,单击Column 0标题。列0的值都是相同的日期,但表将正确排序。第一列标签与隐藏列一致的最早/最晚的标签。
相关代码如下:
jQuery('#myTable').dataTable(
{
"aoColumns": [
{ "sType":"string", "bSearchable": false, "bVisible": false },
{ "iDataSort": 0 },
null,
null,
null
]
}
);
注意,第一列被设置为不可见和不可搜索。此外,由于数字的长度,默认的DataTables排序不起作用(我不确定,也许它不能处理这个长度的字符串)-您可以通过删除“sType”:“long
”,然后尝试按列0排序来查看这一点。所以我不得不把"sType“改成"string”。假设刻度总是相同的位数,这应该不是问题。
https://stackoverflow.com/questions/16636443
复制