2017-02-14 21 views
0

這也與DataTable有關。我有2個自定義過濾器非常相似。一個人工作,而一個人不工作。Datatables中的自定義過濾器不會加載所有數據

看看

這一個工程

$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) { 
    var min = parseInt($('#min').val(), 10); 
    var age = parseFloat(data[12]) || 0; // use data for the age column 

    if ((isNaN(min)) || 
     (min == age)) 
    { 
     return true; 
    } 
    return false; 
} 

它加載的所有記錄在第一,然後做在更換過濾器。

這一個不工作

$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) { 
var department = $('#department').val(); 
var dept = data[18]; // use data for the color column 
if (department == dept)//) 
    { 
     return true; 
    } 
    return false; 
} 
); 

部下拉值爲6,所以不列[18]

它做過濾,但是,默認情況下,或者從列表中選擇無(它的默認值是'')它現在將顯示整個表格數據。

有人嗎?

參考:https://datatables.net/forums/discussion/24959/dropdown-instead-of-search-box

回答

0

明白了。只要其他人也可以用作參考。

$.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) { 
    var department = parseInt($('#department').val(), 10); 
    var dept = parseFloat(data[18]) || 0;//data[18]; // use data for the color column 
    if ((isNaN(department)) || 
     (department == dept)) 
     { 
      return true; 
     } 
      return false; 
    } 
); 

您必須parseint dropbox的值以及parsefloat列的值。