【问题标题】:Jquery Datatable in bootstrap Modal Not reloading after modal close引导模式中的Jquery数据表在模式关闭后不重新加载
【发布时间】:2019-06-13 10:58:33
【问题描述】:

嗨,我在引导模式中有一个 jquery 数据表,模式的数据来自我的 MODEL 类,

<table id="demoGrid1" class="table table-striped table-bordered dt-responsive" >  
                <thead>  
              <tr>  
                <th > Code</th>  
                <th>Description</th>      
                <th>Unit</th>  
                <th style="visibility:hidden"> Price</th>
                  <th style="visibility:hidden"> Color</th>
            </tr>  
                </thead>  
              <tbody>
                  @foreach (var item in Model)
                  {
                      <tr>
                          <td>@item.StockCode</td>
                          <td>@item.Description</td>
                          <td>@item.Unit</td>
                          <td style="visibility:hidden">@item.Price</td>
                          <td style="visibility:hidden">@item.Color</td>
                      </tr>
                  }
              </tbody>
            </table> 

我称这个模型为

 $('#myModal').modal('show');

一旦选择完成就隐藏起来

$('#myModal').modal('hide');

当我在数据表中进行选择时,我的问题是应用了一些样式和所有样式,当我关闭并再次重新打开弹出窗口时,这些样式并没有被清除,即使在我重新打开我的模型后,选择和样式仍然保持不变。

我试过了

$("#myModal").on("hidden.bs.modal", function () {

        $('#demoGrid1').DataTable().draw();
    });

重新绘制数据表,但没有成功。请帮我解决这个问题。如何使用默认值重绘模式弹出窗口中的数据表。

【问题讨论】:

    标签: asp.net-mvc twitter-bootstrap datatables


    【解决方案1】:

    您可以使用destroy() 方法删除DataTables 增强的功能,并将表格恢复到其原始未增强状态,并保留表格中的数据。

    $("#myModal").on("hidden.bs.modal", function () {
               var table = $('#demoGrid1').DataTable();
               table.destroy();
               $('#demoGrid1').empty(); // empty in case the columns change
               $('#demoGrid1').DataTable();
        });
    

    【讨论】:

    • 它会破坏我所有的表数据。我的表就像一个选择器弹出窗口一样工作。一旦我调用销毁所有列和数据。 $('#demoGrid1').DataTable();不会重建它。正如我所说,我没有使用 Ajax 处理数据。它是我的模型,它将数据提供给表格。
    • 最好的解决方案,你也可以将数据表转换为从服务器端获取。
    • destroy() 方法仅删除数据表功能而不是数据。不要使用 empty() 方法。
    • destroy() 不会删除数据表搜索框输入中的项目
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2017-05-26
    • 2014-08-24
    • 2012-04-30
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多