簡體   English   中英

dataTables:在RTL網站中使用Bootstrap排序日期無法正常工作

[英]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
                }

              ]
            });

任何幫助都會很棒,可以在我的網站上更好地看到問題。 如果有人要求現場查看問題,我將提供密碼和用戶名。

您有兩個問題:

  1. 您在日期列中混合了內容。 實際上,日期部分是HTML列的次要部分。 您可能需要提取日期值,例如通過准備

     $.fn.dataTableExt.ofnSearch['extract-date'] = function(value) { ... } 

    並能夠通過以下type: 'date'使用本地日期排序type: 'date'

  2. 但這將不起作用,因為您的日期是歐式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.cssdataTables.bootstrap.js但使用不正確。 閱讀文檔並嘗試錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM