This is我表的小提琴: 按日期的表顺序在seconf页面中断。
正如您所看到的那样,排序效果不佳(第二页)。 在我的网站上,它甚至是最糟糕的。排序分拣第一天(dd)而不是月份(mm),最后一年(yyyy)例如02/10/2015将在2017年2月2日之前出现。
我还有一个不会出现在小提琴中的双箭头,是什么导致它?
这是我正在使用的脚本:
function cc(){
$('.CssDeleteFolder').click();
}
$('.CssDeleteFolder').click(function () {
var fileName = GetHiddenFilename(this);
var defaultname = fileName.replace(/^.*[\\\/]/, '');
defaultname = decodeURIComponent(defaultname);
if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
}
});
任何帮助都会很棒,我的网站可以更好地看到这个问题。如果有人要求现场查看问题,我会提供密码和用户名。
答案 0 :(得分:0)
您有两个问题:
您在日期列中添加了混合内容。事实上,日期部分是HTML列的次要部分。您需要提取日期值,例如通过准备
$.fn.dataTableExt.ofnSearch['extract-date'] = function(value) { ... }
并且可以通过type: 'date'
但是这不起作用,因为你的日期是欧洲风格的dd / mm / yyyy,你也必须转换日期。您可以做的最好的事情是构建自己的日期解析器插件。以下是解决特定情况的方法:
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"extract-date-pre": function(value) {
var date = $(value, 'span')[0].innerHTML;
date = date.split('/');
return Date.parse(date[1]+'/'+date[0]+'/'+date[2])
},
"extract-date-asc": function(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0))
},
"extract-date-desc": function(a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0))
}
});
用法:
columnDefs: [{
type: 'extract-date',
targets: [0]
}
注意:我没有在extract-date-pre
进行任何健全性检查。在盲目地尝试date
项目之前测试parse()
数组是明智的。
更新了工作小提琴 - &gt;的 https://jsfiddle.net/v7oozsLv/3/ 强>
对于多箭头问题,它是由插件和CSS之间的版本混合引起的,即bootstrap和你的设置。我不能帮助,因为我不知道你的设置。已经多次回答过这个问题,如果没有代码,这将是一个纯粹的猜测。在某个地方,我相信,您有dataTables.bootstrap.css
和dataTables.bootstrap.js
,但没有正确使用它。阅读文档并尝试错误。