在我的应用程序中,我使用List.js进行排序。所有“字符串”值都正常工作。但我确实在专栏中有“修改日期”。
当我点击“按日期修改” - 进行排序时,这只是考虑日期值是什么文本,例如:1/4/11 ..并相应地排序。因为这种方法,我得到错误的排序顺序。
我该如何制作呢?应该根据数字的实际值排序日期是什么?
这是我的代码:
new List('mfi-col2', {
valueNames: ['companyLegalName', 'phazeName', 'contactName', 'number', 'enrollId', 'accountType']
});
而不是"number"
是否可以发送$(".number").data-number
?那么让它使用我从服务器获取的时间戳吗?
或者有人可以为这个插件提出替代方案吗?
答案 0 :(得分:10)
您也可以使用数据属性:
<强> JS 强>
valueNames: ['date', { name: 'timestamp', attr: 'data-timestamp' }
<强> HTML 强>
<td class="date timestamp" data-timestamp="1427713871">30/03/2015</td>
现在,您可以通过时间戳排序,而无需第二个或隐藏字段。
答案 1 :(得分:6)
我知道这是一个老问题,但这个答案可能对新来者有所帮助。
将您的日期字段与时间戳相关联,然后比较/排序时间戳。 这取决于你,但有一个建议是将它作为第二个隐藏字段添加到同一级别,你显示每个日期,然后当你排序时,整个div / tr将受影响。
以下是我使用的示例:
我的列表以表格形式显示,此处<td>
是容器, c_start
是显示的实际日期,我显示为我想要(dd / mm / yyyy,dd-mm-yy)因为它只是一个显示器。至于排序,我使用c_start_ts
并隐藏它。在 c_start_ts
中我设置了时间戳值,这是一个完美的排序。即使您以后想要应用过滤,也可以更容易地处理时间戳,因为它可以转换为真正的int。
<td class="xlarge-head ">
<span class="c_start">PUT FORMATTED DATE HERE</span>
<span class="c_start_ts hide">PUT TIME STAMP HERE</span>
</td>
实施例
<td class="xlarge-head ">
<span class="c_start">01/01/2015</span>
<span class="c_start_ts hide">1420070400</span>
</td>
然后我将c_start_ts传递给list.js进行排序,表格中的td将被排序。
最近才开始习惯list.js,它有潜力,但后来猜测会转移到另一个lib。希望我帮忙:)