2016-04-05 20 views
0

DataTables uygulamasında _fnReDraw ile ilgili bir sorunum var, DataTables kullanıyorum ve denetleyicim C#, controller'ımın json'unu Exception veya sucess ile döndür, ancak DataTable'larım yalnızca bir ilk durumu geri aldım.DataTables verimı yeniden çizemiyor

Örnek olarak, denetleyici başarımın geri dönmesi durumunda Özel Durum Datatables'm yalnızca istisnayı yeniden çizer, ancak ilk andan başarımı veriyorum DataTables Yalnızca yeniden başlat. yorumların dediği gibi

$.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 Komple ve Doğrulanabilir örnek] (http://stackoverflow.com/help/mcve) – David784

+0

Kod: $ .ajax ({ türü: "POST", url: '@ Url.Action (" işlem", "Kontrol")', veriler: JSON.stringify (json), veri türü: "JSON", uyumsuz: doğru, contentType: "uygulama/json; charset = uTF-8", başarısı: işlevi (sonuç) {eval ($ ('# MydatatTables'). dataTable()) ._ fnDraw(); }, }); – Cassiano

+0

@Cassiano - kodu bir soru olarak yayınlamalısınız, yorum olarak yayınlamalısınız. Gönderinizi düzenlediniz. – davidkonrad

cevap

0

sizin eval() için herhangi bir neden olacaksa görünmüyor.

Sorunuzda tam olarak ne söylediğini anlamak zor, ancak ajax çağrısından tablo verileri alıyor musunuz? Öyleyse, bir tablo yenilemeden önce tabloyu yeni verilerle yeniden doldurmanız gerekir. yenidatatables api) kullanarak, böyle bir şey yapacağını: Veri güncellemeniz gerekmez, sadece clear ve rows.add dışarı bırakabilir

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

. Bu yardımcı olur umarım.