在modal-close上销毁数据表

时间:2016-12-16 02:52:50

标签: jquery datatables bootstrap-modal

首先道歉,因为我可以看到重复,因为我已经搜索了另一个解决方案,然后继续这个,但仍然无法弄明白。我在这段代码中初始化了Datatables表: -

$('#get_contacts').on('show.bs.modal', function(e)
{
$('#contacts_table').DataTable({
    deferRender: true,
    responsive: true,
    'bPaginate': false,
    'bInfo': false,
    ajax: 'send_sms_lib.php?mode=listContacts',
    columns: [
      {data:'contact_id'},
        {data:'contact_name'},
        {data:'mobile_numb'},
        {data:'contact_id'}
    ],
    'columnDefs': [{
           'targets': 3,
           'searchable': false,
           'orderable': false,
           'render': function (data, type, row){
              return '<input type="checkbox" id="no" name="no" value="'+data+'">';
           }
        }]
  });
/* *comment temporary since I'm doing my own testing*
  $('#group_table').DataTable({
    deferRender: true,
    responsive: true,
    'bPaginate': false,
    'bInfo': false,
    ajax: 'send_sms_lib.php?mode=listGroup',
    columns: [
      {data:'group_id'},
        {data:'group_name'},
        {data:'contact_name'},
        {data:'group_id'}
    ],
    'columnDefs': [{
           'targets': 3,
           'searchable': false,
           'orderable': false,
           'render': function (data, type, row){
              return '<input type="checkbox" id="no" name="no" value="'+data+'">';
           }
        }]
  });

  $('#global_contacts_table').DataTable({
    deferRender: true,
    responsive: true,
    'bPaginate': false,
    'bInfo': false,
    ajax: 'send_sms_lib.php?mode=listGlobalContacts',
    columns: [
      {data:'contact_id'},
        {data:'contact_name'},
      {data:'mobile_numb'},
      {data:'department'},
        {data:'contact_id'}
    ],
    'columnDefs': [{
           'targets': 4,
           'searchable': false,
           'orderable': false,
           'render': function (data, type, row){
              return '<input type="checkbox" id="no" name="no" value="'+data+'">';
           }
        }]
  });

  $('#global_group_table').DataTable({
    deferRender: true,
    responsive: true,
    'bPaginate': false,
    'bInfo': false,
    ajax: 'send_sms_lib.php?mode=listGlobalGroup',
    columns: [
      {data:'group_id'},
        {data:'group_name'},
        {data:'contact_name'},
      {data:'department'},
        {data:'contact_id'}
    ],
    'columnDefs': [{
           'targets': 4,
           'searchable': false,
           'orderable': false,
           'render': function (data, type, row){
              return '<input type="checkbox" id="no" name="no" value="'+data+'">';
           }
        }]
  });*/
});

但是当我开始使用模态时,它会弹出错误,如下所示: -

  

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

我想销毁或者如果可能的话说它是对表格进行去初始化,因为模式包含多个菜单标签&amp;打算销毁另一个选项卡的表,从选中重新初始化表。这是我打算进行销毁过程的代码: -

$('#get_contacts').on('hidden.bs.modal', function () {

});

2 个答案:

答案 0 :(得分:5)

尝试使用.fnDestroy()

$('#get_contacts').on('hidden.bs.modal', function () {
    $('#contacts_table').dataTable().fnDestroy();
});

答案 1 :(得分:1)

我试过@Nishanth Matha&amp;添加其余的数据表代码如下: -

$('#get_contacts').on('hidden.bs.modal', function () {
  $('#contacts_table').dataTable().fnDestroy();
  $('#group_table').dataTable().fnDestroy(); 
  $('#global_contacts_table').dataTable().fnDestroy(); 
  $('#global_group_table').dataTable().fnDestroy(); 
});

结果是问题中的信息不再出现。