2016-09-20 6 views
0

Я пытался попробовать фильтр диапазона с использованием datatables.net. Но цена моего ценового столбца колеблется от миллионов до миллионов. Таким образом, он должен будет иметь запятые, чтобы отделить один, десятый, сотни, тысячи и т. Д.Использование фильтра диапазонов DataTables с языком. Decimal

Я видел язык Datatable.decimal. Но это, похоже, не работает вообще.

Вот мое объявление моего DataTable();

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

ответ

0

Вам нужно только преобразовать строки, которые существуют для ваших больших значений в числа, путем удаления нечисловых значений. Создав range filter example в dataTables, я сделал это здесь, используя регулярное выражение для значения, которое читается. Я сделал это в 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; 
    } 
); 
Смежные вопросы