2017-07-19 108 views
1

我使用jQuery DataTables這裏是我的表目前是這樣的:現在jQuery的數據表刷新不刷新頁面

enter image description here

,截至目前,當我點擊Deactivate我使用AJAX調用我的WebAPI方法將該記錄設置爲active = false ..因此表格中的複選框應該取消選中。

public IHttpActionResult Deletecode_AutoMake(int id) 
{ 
    code_AutoMake code_AutoMake = db.code_AutoMake.Find(id); 
    if (code_AutoMake == null) 
    { 
     return NotFound(); 
    } 

    code_AutoMake.Active = false; 
    db.Entry(code_AutoMake).State = EntityState.Modified; 
    db.SaveChanges(); 

    return Ok(code_AutoMake); 
} 

這一切都按預期工作..但表不重裝,除非如果我刷新頁面看到的複選框取消選中實際。

這是我的DataTable如何設置。

$("#Auto-Make-Table").on("click", 
    ".js-automake-delete", 
    function() { 

     var link = $(this); 
     var autoMakeName = $(this).data("automake-name"); 
     var autoMakeId = $(this).data("automake-id"); 

     bootbox.confirm("Are you sure you want to delete this auto make?", 
      function (result) { 
       if (result) { 
        $.ajax({ 
         url: infoGetUrl + autoMakeId, 
         method: "DELETE", 
         success: function() { 
          autoMakeTable.reload(); 
          toastr.success(autoMakeName + " successfully deleted"); 
         }, 
         error: function (jqXHR, textStatus, errorThrown) { 
          var status = capitalizeFirstLetter(textStatus); 
          var error = $.parseJSON(jqXHR.responseText); 
          console.log(error); 
          toastr.error(status + " - " + error.exceptionMessage); 
         } 
        }); 
       } 
      }); 
    }); 

我的問題/目標是..我如何讓表刷新/重新加載本身,而不實際頁面刷新?

任何幫助表示讚賞。

enter image description here

跟此之一::

UPDATE

autoMakeTable.ajax.reload();使用

接收此錯誤嘗試

enter image description here

回答

1

假設你的數據表上這樣分配,

var myDataTable = $('#myTableId').DataTable({ 
    //Rest code 
}) 

然後你success method爲停用裏面,您只需要重新加載數據表這樣,

success: function() 
{ 
    myDataTable.ajax.reload(); 
    //rest code 
} 

你忘了加ajax。請查看official link以瞭解更多信息。

更新:

如果你的部分看法是strongly typed,然後調用在成功的方法,你的操作方法,並使其一樣,在你上面的成功方法,

success: function() 
{ 
    $.ajax({ 
     url: "@Url.Action("Index", "code_AutoMake")", //As you have mentioned in the chat 
     method: "GET", 
     success: function (data) 
     { 
     //Here just render that partial view like 
     $("#myDiv").html('').html(data); //This will empty first then render the new data 
     } 
     }) 

注:這裏myDivdivid,你的表位於哪裏。

希望它能幫助:)

+0

請參閱我的更新請 –

+0

我相信,您通過使用** Ajax **來綁定您的數據表。而你需要編寫你的數據表名而不是** myDataTable **。我認爲你的數據表變量名是** autoMakeTable **。所以你需要在成功方法裏寫'autoMakeTable.ajax.reload();'。 –

+0

對不起,我做的是..我只是複製並粘貼你的代碼..但我確實使用了我的個人表名autoMakeTable ..並且收到了這些錯誤 –

0

在您的php文件或其中可能包含的文件中創建一個與您當前的html結構相同的表格,而不是通過執行ajax調用而收到的新數據。

$.post("newTable.php", function(data) { 
    $(".currentTable").html(data); 
}); 
+0

你可以在這裏查看示例:https://datatables.net/forums/discussion/38969/reload-refresh-table-after-event –

+0

我相信OP的後端是ASP。 net ... – davidkonrad

+0

是代碼以任何後端語言運行 –