2016-07-18 6 views
0

Momentan wird das jQuery Datatables-Plugin verwendet.jQuery Datatable - Ändern der Daten-URL

Ich muss jetzt in der Lage sein, die Ajax-Datenquelle auf der Grundlage einiger Formulareingabewerte zu ändern, die bei einem Klick auf die Schaltfläche gesendet würden?

Was ist die empfohlene Methode, um dies zu erreichen?

$(document).ready(function() { 

     $('#btnReport') 
      .click(function() { 
       var table = $('#reports').DataTable(); 
       table.ajax.reload(); 
      }); 

     var querystring = '?from=' + $('#datetimepickerFrom').val() + '&till=' $('#datetimepickerFrom').val(); 

     var url = '/api/reports/custom'; 

     var table = $("#reports").DataTable({ 
      ajax: { 
       url: url + queryString, 
       dataSrc : "" 
      }, 
      columns: [ 
       { 
        data: "fullName" 
       }, 
       { 
        data: "timeIn" 
       } 
      ] 
     }); 

    }); 

Vielen Dank

Antwort

1

Verwenden ajax.url() und ajax.url().load() URL für die Tabelle und Daten von dieser URL zu setzen.

Zum Beispiel:

function getDataTableUrl(){ 
    return 
     '?from=' + $('#datetimepickerFrom').val() 
     + '&till=' + $('#datetimepickerFrom').val(); 
} 

$('#btnReport') 
    .click(function() { 
     var table = $('#reports').DataTable(); 
     table.ajax.url(getDataTableUrl()).load(); 
    }); 
+0

Danke, scheint dies zu sein, was ich – adnan

+0

@adnan brauchte, gibt es Fehler im Code, die korrigiert wird. –

+0

Eine etwas flexiblere und effizientere Herangehensweise an das Obige (unter der Annahme, dass Sie auch diese Werte für die anfängliche Anforderung benötigen) wäre, den 'getDataTableUrl()' -Funktionsaufruf in die Initialisierung der Datentabelle, z. 'ajax: {url: getDataTableUrl()}' und rufe 'table.ajax.reload()' dort auf, wo du es neu laden willst –