2016-04-05 5 views
0

Ich habe ein Problem mit _fnReDraw in DataTables, ich verwende DataTables und die Daten von meinem Controller C#, mein Controller Return Json mit Ausnahme oder Erfolg, aber meine DataTables ReDraw nur eine erste Situation.DataTables nicht neu zeichnen meine Daten

Zum Beispiel, wenn der erste Moment mein Controller zurückgeben Exception mein Datatables Redraw nur Ausnahme, aber se ersten Moment Rückgabe meines DataTables ReDraw nur Erfolg.

$.ajax({ 
    type: "POST", 
    url: '@Url.Action("Action", "Controller")', 
    data: JSON.stringify(json), 
    datatype: "JSON", 
    async: true, 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
    eval($('#MydatatTables').dataTable())._fnDraw(); 
    }, 
}); 
+0

[Minimal, vollständig und prüfbare Beispiel] (http://stackoverflow.com/help/mcve) – David784

+0

Code: $ Schnipsel ({ Typ: "POST", url: ‚@ Url.Action (“ Action“, "Controller")‘, Daten: JSON.stringify (json), Datentyp: "JSON", async: true, content: "application/json; charset = utf-8", Erfolg: function (Ergebnis) {eval ($ ('# MydatatTables'). dataTable()) ._ fnDraw(); }, }); – Cassiano

+0

@Cassiano - Sie sollten den Code in die Frage bearbeiten, nicht als Kommentar. Habe deinen Beitrag bearbeitet. – davidkonrad

Antwort

0

Wie in den Kommentaren gesagt wird, es scheint nicht eval() für Sie keinen Grund zu sein.

Es ist schwer zu verstehen, was Sie in Ihrer Frage genau sagen, aber erhalten Sie Tabellendaten von Ihrem Ajax-Anruf zurück? Wenn dies der Fall ist, müssen Sie die Tabelle mit den neuen Daten erneut füllen, bevor Sie eine Tabellenaktualisierung aufrufen. Mit Hilfe der neuen datatables api), würden Sie so etwas tun:

$.ajax({ 
    type: "POST", 
    url: '@Url.Action("Action", "Controller")', 
    data: JSON.stringify(json), 
    datatype: "JSON", 
    async: true, 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
    var dtApi = $('#MydataTables').DataTable(); 
    dtApi.clear(); //clear old data from table 
    dtApi.rows.add(result); 
    dtApi.draw(); 
    } 
}); 

Wenn Sie die Daten nicht aktualisieren müssen, können Sie einfach die clear und rows.add auslassen. Hoffe das hilft.

Verwandte Themen