刷新jQuery数据表

Hen*_*ikP 13 ajax jquery jquery-datatables

对此有很多疑问,但我从来没有找到一个对我有用的问题.我有一个简单而简单的HTML表,其中正在填充来自AJAX调用的行.然后我想用DataTable插件更新表,但它不起作用.我有一个HTML表,看起来像这样:

<table id="myTable">
  <thead>
     <tr>
          <th>1</th>
          <th>2</th>
          <th>3</th>
          <th>4</th>
          <th>5</th>
     </tr>
  </thead>
  <tbody>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

在我的jQuery页面加载中

$(document).ready(function(){
        var oTable = $('#myTable').dataTable({
            "aoColumns": [
              { "bSortable": false },
              null, null, null, null
            ]
        });
});
Run Code Online (Sandbox Code Playgroud)

最后我的下拉列表更改功能

$("#dropdownlist").on("change", function () {
        $("tbody").empty();
            $.ajax({
                type: "POST",
                url: "@Url.Action("ActionHere", "Controller")",
                dataType: "json",
                success: function (data) {
                    $.each(data, function (key, item) {
                        $("tbody").append("<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>");
                    });
                }
            })
        var oTable = $('#myTable').dataTable(); // Nothing happens
        var oTable = $('#myTable').dataTable({ // Cannot initialize it again error
                "aoColumns": [
                  { "bSortable": false },
                  null, null, null, null
                ]
            });
        });
Run Code Online (Sandbox Code Playgroud)

追加等等已被修改以缩短它等等所以不要过分关注它.

基本上问题是如何更新表,我可以做我的AJAX并将新数据添加到表中,但数据表插件不会随之更新.我尝试过其他类似的东西

.fnDraw(假);

但是当我收到JSON错误时它什么也没做

fnReloadAjax()

关于如何刷新表格的任何线索?

Sri*_*r R 25

试试这个

最初,您初始化表,因此首先清除该表

$('#myTable').dataTable().fnDestroy();

然后在ajax成功后再次初始化

$('#myTable').dataTable();
Run Code Online (Sandbox Code Playgroud)

像这样

$("#dropdownlist").on("change", function () {
        $("tbody").empty();
            $.ajax({
                type: "POST",
                url: "@Url.Action("ActionHere", "Controller")",
                dataType: "json",
                success: function (data) {
                    $.each(data, function (key, item) {
                        $("tbody").append("<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>");
                    });
                }
            })
       $('#myTable').dataTable().fnDestroy();
       $('#myTable').dataTable({ // Cannot initialize it again error
                "aoColumns": [
                  { "bSortable": false },
                  null, null, null, null
                ]
            });
        });
Run Code Online (Sandbox Code Playgroud)

DEMO