使用的datatable # 39;使用language.decimal的范围过滤器

Using DataTables' range filter with language.decimal

本文关键字:language decimal 范围 使用 过滤器 datatable      更新时间:2023-09-26

我一直在尝试使用datatable. net的数据表来尝试范围过滤器。但我的专栏价格从数百万到数百万不等。因此,需要用逗号分隔一、十分、百位、千位……等等。

我已经看到了Datatable的language.decimal。但它似乎根本不起作用。

下面是我对DataTable()的声明

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

您应该只需要通过剥离非数值值将存在的用于大值的字符串转换为数字。基于数据表上的范围过滤器示例,我在这里使用regex对读入的值进行了操作。我在一些典型的测试数据中使用第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;
    }
);