2016-07-28 10 views
0

Ich habe ein Problem beim Neustart meiner Datentabelle, wenn ich meine Datentabelle entsprechend einem Web-Service Ergebnisse fülle, und es füllt sich korrekt, aber im Moment, um eine Forschung durch Klicken auf die Schaltfläche (Suchen) erneut die Datentabelle enthält die alte Header und es zeigt die Ergebnisse, aber die Funktion enthält die Ergebnisse nicht in die DataTable und es zeigt 1 zu 1 von 1 Einträgen, was der alten Suche entspricht.Wie startet man eine DataTable neu, die mit einem Append in JQuery erstellt wurde?

Das ist mein JavaScript:

$.ajax({ 
       type: 'POST', 
       url: '/enrollment.asmx/MethodSearch', 
       data: "{ 'esiidVal': " + $("#esiID").val() + "}", 
       contentType: "application/json; utf-8", 
       dataType: "json", 
       success: function (data) { 
        $("#loadingDiv").hide(); 

        //$("#data").append("<table id='tbSearch' class='table table-hover display'><thead><tr><th>City</th><th>Zip</th><th>Address</th><th>State</th><th>Location ID</th></tr></thead><tbody><tr id='" + data.d.City + data.d.Zip + data.d.Adds + "'><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/city'>" + data.d.City + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/zip'>" + data.d.Zip + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/adds'>" + data.d.Adds + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/state'>" + data.d.State + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/location'>" + data.d.SNumer + "</td></tr></tbody></table>"); 
        $("#db").append("<thead><tr><th>Selection</th><th>City</th><th>Zip</th><th>Address</th><th>State</th><th>ESIID</th><th>Utility</th></tr></thead><tbody><tr id='" + data.d.City + data.d.Zip + data.d.Adds + "'><td><input type='checkbox' name='userinformation' value='#'></td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/city'>" + data.d.City + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/zip'>" + data.d.Zip + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/adds'>" + data.d.Adds + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/state'>" + data.d.State + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/location'>" + data.d.SNumer + "</td><td id='" + data.d.City + data.d.Zip + data.d.Adds + "/utility'>" + data.d.Utility + "</td></tr></tbody>"); 
        //var html = "<thead><tr><th>City</th><th>Zip</th><th>Address</th><th>State</th><th>ESIID</th><th>Utility</th></tr></thead><tbody>"; 
        $('#db').DataTable(); 

        $('#db').after($("checkbox").addClass('checkbox-primary')); 


       }, 
       error: function (e) { 
        alert(JSON.stringify(e)); 
        $("#divResult").html("Something Wrong."); 
       } 
      }); 

enter image description here

ich zu zerstören versucht() funktionierte nicht, ich auch sauber versucht() funktionierte nicht. Ich habe Wochen mit diesem Problem konfrontiert. Kann mir jemand bei meinem Problem helfen?

Vielen Dank im Voraus.

+0

werfen Sie einen Blick auf diese http://stackoverflow.com/questions/35469536/datatables-responsive-doesnt-apply-to-dynamically-added-row – Luca

+0

I versucht, aber es hat nicht funktioniert. –

Antwort

0

table.draw() sollte den Trick tun. Rufen Sie den Anruf nach dem Anhängen von Zeilen auf.

+0

Es hat funktioniert, aber es gibt keine Filter. –

+0

Haben Sie Ajax-Tabellen berücksichtigt? https://datatables.net/examples/data_sources/ajax.html Es scheint eine einfachere Möglichkeit zu sein, die Tabelle neu zu laden. –

+0

Ich habe aber die Sache ist, dass ich viele Dinge direkt nach dem Auswählen einer Zeile validieren muss, und die Parameter aus der ausgewählten Zeile an andere Abschnitte meines Webs übergeben. –

0

Versuchen Sie diesen Code:

$('#dt table').dataTable().fnDestroy();<br/> 
var tr = $("#td" + id).parent().remove();<br/> 
$('#dt table').dataTable();