我有一个表格,其中包含“日期(格式为M / d,如'Aug-23')”和相同列中的字符串(如'process'和'completed')。但问题是按字母顺序排序,不按日期排序。 我的文件结构是:
<script type="text/javascript" language="javascript" src="../../table-sorting/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../table-sorting/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#sorting').dataTable( {
"dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>'
} );
} );
</script>
CPA送货
123 Aug-28
327 July-30
789流程
如果我对运输列进行排序,那么它会给出结果
过程
8 - 28
七月-30
但我希望结果如下:
过程
七月-30
8 - 28
首先表示字符串排序,并在该日期之后排序
这些运输价值来自Mysql数据库
我如何解决这个问题? 任何建议??
答案 0 :(得分:0)
您必须以YYYYmmdd
格式编写日期,以便字母顺序符合时间顺序
但是你希望你的日期以更好看的格式显示(合法)。
解决方案是有两列:一列具有美观的日期,一列具有YYYYmmdd
日期。这个将被隐藏,但将由dataTable
排序功能使用。
<table id="sorting">
<thead>
<tr>
<th>CPA</th>
<th>Shipping</th>
<th>Shipping (sorting format)</th>
</tr>
</thead>
<tbody>
<tr>
<td>123</td>
<td>Aug 28</td>
<td>20150828</td>
</tr>
<tr>
<td>327</td>
<td>July 30</td>
<td>20150730</td>
</tr>
<tr>
<td>789</td>
<td>Process</td>
<td>0</td>
</tr>
</tbody>
</table>
然后,Javascript:
$('#sorting').dataTable( {
"aoColumns": [
{"bSortable": true}, // First column: normal
{"iDataSort": 2}, // Second column's sorting depends on third column (dataTable starts counting from 0, that's why third column is number 2)
{"bVisible": false}, // Third column: hide it
]
});
您可以在DataTables' documentation中找到更多提示和示例。