2015-05-20 111 views
-1

我有以下的jQuery数据表不能重新初始化数据表,jQuery的数据表

<table class="table table-striped table-bordered table-hover" id="dataTables-table"> 
     <thead> 
      <tr> 
       <th> 
        Date 
       </th> 
       <th> 
        Firstname 
       </th> 
       <th> 
        Lastname 
       </th> 
      </tr> 
     </thead> 
    </table> 

和JS初始化代码

$(document).ready(function() {    
     $('#dataTables-table').dataTable({   
      "bDestroy": true, 
      "processing": true, 
      "serverSide": true, 
      "ajax": "/Home/ShowData" 
     }); 
}); 

在加载HTML页面我得到

数据表警告: table id = dataTables-table - 无法重新初始化DataTable。

+0

你已经这样做了别的地方在网页上 - '$(“#数据表,表”)的dataTable({'在这种情况下,检查是否DT是已经初始化并采取相应的措施。 – lshettyl

+0

您使用的是哪个版本的数据表? – trevor

回答

0

Online documentation有专门针对此问题的页面。

看起来像这表明你可能在你的代码中有其他地方试图初始化相同的数据表,但是如果没有你的整个代码文件就很难分辨出来。

0

doc:当所选节点的DataTable实例已被初始化时,通过将选项传递给DataTables构造函数对象来触发此错误。

在这种情况下,您将需要使用$.fn.dataTable.isDataTable()静态方法。这可以用来检查一个表是一个DataTable或尚未

$(document).ready(function() { 
    var $table; 
    //Check if it's already initialized. 
    if ($.fn.dataTable.isDataTable('#dataTables-table')) { 
     //Get an instace of the data table 
     $table = $('#dataTables-table').dataTable(); 
     //CAUTION: the below line destroys the data table 
     $table.destroy(); 
     //Create data table 
     $('#dataTables-table').dataTable({   
      "bDestroy": true, 
      "processing": true, 
      "serverSide": true, 
      "ajax": "/Home/ShowData" 
     }); 
    } 
}); 
1

根据对您传递到DataTable构造的选项,看来你正在使用的数据表V1.10或更晚。

如果是这样的话,那么您解决问题,可能是因为改变这个选项,因为简单:

"bDestroy": true 

的“bDestroy”选项是指与数据表V1.90或更早上班的legacy code一部分。

options for DataTables V1.10+要求您使用此格式:

"destroy": true 
0

下面

$("#dataTables-table").DataTable().destroy(); 

给出然后在它下面添加你的数据表中创建代码销毁数据表与先前的声明尝试。

0

在javascript中把这段代码

$('#idTable').dataTable({ 
destroy: true });