我有以下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页面时我正在
DataTables警告:table id = dataTables-table - 无法重新初始化DataTable。
答案 0 :(得分:1)
根据您传递给dataTable构造函数的 选项,您似乎正在使用DataTables V1.10或更高版本。
如果是这种情况,那么解决您的问题可能就像更改此选项一样简单:
"bDestroy": true
'bDestroy'选项是legacy code的一部分,适用于DataTables V1.90或更早版本。
options for DataTables V1.10+要求您使用以下格式:
"destroy": true
答案 1 :(得分:0)
Online documentation有专门针对此问题的页面。
看起来这表明您的代码中可能还有其他地方尝试初始化相同的数据表,但如果没有整个代码文件,这很难说清楚。
答案 2 :(得分: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"
});
}
});
答案 3 :(得分:0)
尝试破坏之前的数据表声明,如下所示
$("#dataTables-table").DataTable().destroy();
然后在其下面添加您的数据表创建代码。
答案 4 :(得分:0)
在javascript中输入此代码
$('#idTable').dataTable({
destroy: true });