2017-02-14 5 views
0

Dies bezieht sich auch auf DataTable. Ich habe 2 benutzerdefinierte Filter so sehr ähnlich. Man arbeitet, während man es nicht tut.Benutzerdefinierter Filter in Datatables lädt nicht alle Daten

Werfen Sie einen Blick

Dieses funktioniert

$.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; 
} 

Es alle Datensätze zuerst lädt und dann tut der Filter auf Änderung.

Dies funktioniert nicht

$.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; 
} 
); 

Abteilung Drop-Down-Wert 6 und so auch die Spalte [18]

Es funktioniert die Filterung aber auf Standard oder wenn nichts aus der Liste auswählen (Der Standardwert, der '') ist, zeigt nun die gesamten Tabellendaten an.

Jeder?

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

Antwort

0

Verstanden. Nur für die anderen, die als Referenz verwendet werden, wenn sie auch über diese kommen.

$.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; 
    } 
); 

Sie haben den Wert der Dropbox zu ParseInt sowie parseFloat den Wert der Spalte.

Verwandte Themen