2016-12-10 3 views
0

Ich habe eine Tabelle mit zwei Datumsspalten I Datumsbereich in einer Spalte verwenden können, die ADATA [3] wie dieseDatentabellen zwei Datumsbereiche in zwei Spalten Filterung

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex){ 
     var dateStart = parseDateValue($("#fromDate").val()); 
     var dateEnd = parseDateValue($("#toDate").val()); 
     var evalDate= parseDateValue(aData[3]); 
     if (evalDate >= dateStart && evalDate <= dateEnd) { 
      return true; 
     } 
     else { 
       return false; 
     } 

}); 

function parseDateValue(rawDate) { 
    var dateArray= rawDate.split("-"); 
    var parsedDate= dateArray[2] + dateArray[1] + dateArray[0]; 
    return parsedDate; 
} 

var table = $('#data').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]], 
    "order": [[ 0, "desc" ]], 
    "paging" : true, 
    "scrollX": true, 
    dom: 'Bfrtip', 
    buttons: [ 
    'excel', 'print' 
    ] 
}); 

$("#fromDate").keyup (function() { table.draw(); }); 
$("#fromDate").change(function() { table.draw(); }); 
$("#toDate").keyup (function() { table.draw(); }); 
$("#toDate").change(function() { table.draw(); }); 

nun ein anderes Datum Spalte Ich möchte hinzufügen, ist Das wird aData [5] sein und ich möchte einen anderen Datumsbereichfilter hinzufügen. Wie kann ich Tabelle mit zwei Datenbereichsfiltern filtern, die andere Datumswähler verwenden, die # von Date2 und # toDate2 sind, um in aData [5] zu suchen?

+0

ich so etwas wie dies vorher getan haben, aber ich würde gegen einen JSFiddle immer so viel glücklicher arbeiten, so dass ich das überprüfen Daten. – annoyingmouse

Antwort

0

Ich habe Radio-Buttons, welche Spalte zu wählen, filtern

<td><input type="radio" name="filterdate" value="birth_date"> birth date </td> 
<td><input type="radio" name="filterdate" value="register_date"> register date </td> 

$("input[name=filterdate]").change(function() { 
    var d = $("input[name=filterdate]:checked").val(); 

    if(d == 'birth_date'){ 
     $.fn.dataTableExt.afnFiltering.push(
      function(oSettings, aData, iDataIndex){ 
       var dateStart = parseDateValue($("#Bdate_From").val()); 
       var dateEnd = parseDateValue($("#Bdate_To").val()); 
       var evalDate= parseDateValue(aData[3]); 
       if (evalDate >= dateStart && evalDate <= dateEnd) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
     ); 
    } 
    else{ 
     $.fn.dataTableExt.afnFiltering.push(
      function(oSettings, aData, iDataIndex){ 
       var dateStart = parseDateValue($("#regdate_From").val()); 
       var dateEnd = parseDateValue($("#regdate_To").val()); 
       var evalDate= parseDateValue(aData[8]); 
       if (evalDate >= dateStart && evalDate <= dateEnd) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
     ); 
    } 
}); 

function parseDateValue(rawDate) { 
    var dateArray= rawDate.split("-"); 
    var parsedDate= dateArray[2] + dateArray[1] + dateArray[0]; 
    return parsedDate; 
} 

var table = $('#data').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]], 
    "order": [[ 0, "desc" ]], 
    "paging" : true, 
    "scrollX": true, 
    dom: 'Bfrtip', 
    buttons: [ 
     'excel', 'print' 
    ], 
    responsive: true 
}); 
Verwandte Themen