[英]dataTables: Sort date not working well using Bootstrap in RTL website
這是我的表的一個小提琴:seconf頁中的表按日期順序中斷。
如您所見,排序效果不佳(第二頁)。 在我的網站上甚至更糟。 排序將以日期(dd)而非月份(mm)排序,最后以年份(yyyy)為例,例如02/10/2015將出現在10/2/2017之前。
同樣,我有一個雙箭頭,沒有出現在小提琴中,這是什么原因引起的?
這是我正在使用的腳本:
$('#leadtable').dataTable({
language: {
url: '//cdn.datatables.net/plug-ins/1.10.12/i18n/Hebrew.json'
},
columnDefs: [{
type: 'de_datetime',
targets: 0
}
]
});
任何幫助都會很棒,可以在我的網站上更好地看到問題。 如果有人要求現場查看問題,我將提供密碼和用戶名。
您有兩個問題:
您在日期列中混合了內容。 實際上,日期部分是HTML列的次要部分。 您可能需要提取日期值,例如通過准備
$.fn.dataTableExt.ofnSearch['extract-date'] = function(value) { ... }
並能夠通過以下type: 'date'
使用本地日期排序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
進行任何健全性檢查。 在盲目嘗試parse()
項目之前,測試date
數組是明智的。
更新了工作提琴-> https://jsfiddle.net/v7oozsLv/3/
對於多箭頭問題,這是由您在插件和CSS之間混合使用各種版本引起的,例如,引導程序和設置。 由於我不了解您的設置,所以我無能為力。 已經多次回答了這個問題,如果沒有代碼,那將是一個純粹的猜測。 我相信某個地方會有dataTables.bootstrap.css
和dataTables.bootstrap.js
但使用不正確。 閱讀文檔並嘗試錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.