2016-09-20 81 views
0

我一直在嘗試使用datatables.net的數據表來嘗試範圍過濾器。 但我的價格欄價格從數百萬到數百萬不等。因此,它需要用逗號分隔一個,十個,幾百個,幾千個等等。使用DataTables的範圍過濾器language.decimal

我見過Datatable的language.decimal。但它似乎並沒有工作。

這是我的DataTable()的聲明;

var table = $('#example').DataTable({ 
     "language": { 
     "decimal": "-", 
     "thousands": "." 
     } 
    }); 

回答

0

您應該只需要通過刪除非數字值將大值存在的字符串轉換爲數字。基於dataTables上的range filter example,我在這裏使用正則表達式對讀取的值進行了處理。我在fiddle中做了一些典型的測試數據,這些測試數據使用第5列作爲薪水,但是您應該可以相應地進行修改:

$(document).ready(function() { 
    var table = $('#example').DataTable(); 

    // Event listener to the two range filtering inputs to redraw on input 
    $('#min, #max').keyup(function() { 
     table.draw(); 
    }); 
}); 

$.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) { 
     var min = parseInt($('#min').val(), 10); 
     var max = parseInt($('#max').val(), 10); 

     // MODIFY THE COLUMN FOR VALUE: 
     var value = parseFloat(data[5].replace(/\D/g,'')) || 0; 

     if ((isNaN(min) && isNaN(max)) || 
      (isNaN(min) && value <= max) || 
      (min <= value && isNaN(max)) || 
      (min <= value && value <= max)) 
     { 
      return true; 
     } 
     return false; 
    } 
);