jquery 数据表警告:table id=example -无法重新初始化DataTable,有关此错误的详细信息,请参阅http://datatables.net/tn/3

lndjwyie  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(376)

预期输出:
根据角色下拉选择每次需要绑定数据表网格
错误:数据表警告:table id=example -无法重新初始化DataTable。有关此错误的详细信息,请参阅http://datatables.net/tn/3
UI如下所示:

我的代码:

  1. $(document).ready(function() {
  2. $('#RoleId').change(function() {
  3. var RoleId = $("#RoleId").val();
  4. var SetData = $("#SetRoleMapping");
  5. var url = "/Home/GetRoleMapplingList?RoleId=" + RoleId;
  6. $.ajax({
  7. type: "GET",
  8. url: url,
  9. success: function(data) {
  10. var RoleMapping = JSON.parse(data);
  11. for (var i = 0; i < RoleMapping.length; i++) {
  12. var Data = "<tr class='row_" + RoleMapping[i].Id + "'>" +
  13. "<td>" + RoleMapping[i].Id + "</td>" +
  14. "<td>" + RoleMapping[i].RoleId + "</td>" +
  15. "<td>" + RoleMapping[i].MenuName + "</td>" +
  16. "<td>" + RoleMapping[i].Active + "</td>" +
  17. "</tr>";
  18. SetData.append(Data);
  19. }
  20. var table = $('#example').DataTable({
  21. 'paging': true,
  22. 'lengthChange': true,
  23. 'searching': true,
  24. 'ordering': true,
  25. 'info': true,
  26. 'autoWidth': true
  27. });
  28. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  29. <script src="~/Content/boostrap/jquery/dist/jquery.min.js"></script>
  30. <script src="~/Content/boostrap/datatables.net/js/jquery.dataTables.min.js"></script>
  31. <table id="example" class="display nowrap dataTable dtr-inline">
  32. <thead>
  33. <tr>
  34. @*
  35. <th><input name="select_all" value="1" id="example-select-all" type="checkbox" /></th>*@
  36. <th>Id</th>
  37. <th>Role Id</th>
  38. <th>Menu Name</th>
  39. <th>Active</th>
  40. </tr>
  41. </thead>
  42. <tfoot>
  43. <tr>
  44. @*
  45. <th>sdfsdf</th>*@
  46. <th>Id</th>
  47. <th>Role Id</th>
  48. <th>Menu Name</th>
  49. <th>Active</th>
  50. </tr>
  51. </tfoot>
  52. <tbody id="SetRoleMapping"></tbody>
  53. </table>
omqzjyyz

omqzjyyz1#

  1. Updated Code:
  2. $('#RoleId').change(function () {
  3. var table;
  4. var RoleId = $("#RoleId").val();
  5. var SetData = $("#SetRoleMapping").empty();
  6. var url = "/Home/GetRoleMapplingList?RoleId=" + RoleId;
  7. $.ajax({
  8. type: "GET",
  9. url: url,
  10. success: function (data) {
  11. var RoleMapping = JSON.parse(data);
  12. for (var i = 0; i < RoleMapping.length; i++) {
  13. var Data = "<tr class='row_" + RoleMapping[i].MenuId + "'>" +
  14. "<td><input type='checkbox' class='chkRow' " + RoleMapping[i].IsActive + " id='chkid1'></td>" +
  15. "<td>" + RoleMapping[i].MenuId + "</td>" +
  16. "<td>" + RoleMapping[i].RoleId + "</td>" +
  17. "<td>" + RoleMapping[i].MenuName + "</td>" +
  18. "</tr>";
  19. SetData.append(Data);
  20. }
  21. table.destroy();
  22. table = $('#example').DataTable({
  23. 'destroy': true,
  24. 'paging': true,
  25. 'lengthChange': true,
  26. 'searching': true,
  27. 'ordering': true,
  28. 'info': true,
  29. 'autoWidth': true
  30. }
  31. });
展开查看全部
alen0pnh

alen0pnh2#

您 应该 在 程式 码 开头 将 table 对象 宣告 为 全 域 对象 :

  1. var table;

中 的 每 一 个
然后 , 您 应该 在 创建 新 示例 之前 销毁 table 的 示例 :

  1. table.destroy();

格式
然后 , 您 应该 在 建立 DataTable 对象 时 加入 destroy 属性 :

  1. table = $('#example').DataTable({
  2. 'destroy': true,
  3. 'paging': true,
  4. 'lengthChange': true,
  5. 'searching': true,
  6. 'ordering': true,
  7. 'info': true,
  8. 'autoWidth': true
  9. });

格式

展开查看全部

相关问题