无法解决Datatable SCRIPT5007错误: 无法设置未定义或空引用的'_DT_CellIndex'属性。

22
我无法解决以下Datatables错误:
SCRIPT5007:无法为未定义或空引用设置“_DT_CellIndex”属性。
我尝试在整个互联网上寻找解决方法,并发现这个链接是最好的解决方案。但我仍然无法解决这个问题。我是否遗漏了什么?我是JavaScript的新手。

这是解决我的问题的答案 - Ghizlane Lotfi
12个回答

36

这个问题的根本原因是th和td之间数量不匹配,请确保th的数量与td相匹配。希望这可以帮到你。


2
这基本上就是我的全部内容了。添加的列数应该与初始化的数量相同。 - Paolo
1
挽救了我的时刻 - Baqer Naqvi
1
对我来说,我正在使用ajax在表格上加载数据,但在任何数据加载到表格之前调用函数 $('#TableID').DataTable() ,因此出现了这个问题。因此,我需要在ajax调用的success: function()中加载表格数据后调用此函数。 - thepunitsingh

13

我们遇到了同样的错误!解决方法是根据从0开始的列数更改dataTable初始化中的target

我们的表格有4列,因此targets: [3]

$.extend($.fn.dataTable.defaults,{
  columnDefs: [{ 
    targets: [3]
  }]
});

7
在我的情况下,在一行中使用colspan时,单元格的数量与表头不匹配,因此会出现此错误。您可以添加这些隐藏单元格以消除该错误。
尝试这个。
<tr>
    <td colspan="4">details</td>
    <td style="display: none"></td>
    <td style="display: none"></td>
    <td style="display: none"></td>
</tr>

添加所需的单元格但隐藏它们


1
你好,没有详细信息的答案并不真正有帮助。您能否添加更多细节?为什么这会解决问题? - pix
在我的情况下,在一行中使用colspan,单元格的数量与表头不匹配,因此会出现此错误。您可以添加这些隐藏单元格以消除该错误。 - Junaid
Edit your answer :) - pix
1
这是一个聪明的答案,在应用了许多stackoverflow答案解决方案后得出的结果 +1 - TarangP

3

我在这里找到了答案:Datatable论坛

这是一个简单的错误,表头有一列没有标题,但是该列在表格本身中不存在。我没有看到它丢失了(因为没有标题和边框)。

它起作用了吗?


似乎不起作用......你知道如何检查我的表格thead标签td是否与我的表格tbody td匹配吗? - Frank D.
嗨@a7madgamal,让我在jsbin上上传代码,但是..以下是IE 11卡住的代码:-for (i = 0,iLen = oSettings.aoColumns.length; i <iLen; i ++) { oCol = oSettings.aoColumns [i];nTd = nTrIn?anTds [i]:document.createElement(oCol.sCellType); nTd._DT_CellIndex = { 行:iRow, 列:i }; - Frank D.

1

当数据表中没有数据时,我遇到了错误。该表是空的。添加一条记录后,错误消失了。


0
我之前也遇到过类似的问题,解决方法是去掉列名中的'$'符号。希望能对你有所帮助。

0
检查您的表列和dtColumnDefs的计数。
如果您有6列,那么下面将是您的dtColumnDefs配置。
self.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0),
    DTColumnDefBuilder.newColumnDef(1),
    DTColumnDefBuilder.newColumnDef(2),
    DTColumnDefBuilder.newColumnDef(3),
    DTColumnDefBuilder.newColumnDef(4),
    DTColumnDefBuilder.newColumnDef(5)
];

0

我已经解决了。问题出在JavaScriptHTML之间。

当我删除了HTML列但忘记删除一个看起来像这样的JavaScript列时,问题就出现了。

        {"name": "Product", "orderable": true,  "searchable": true},

当我在JS中删除了多余的列,一切都开始正常工作了。


0

解决错误:

无法设置未定义的属性“_DT_CellIndex”

首先我告诉你,$("id_tu_tabla").Datatable() 至少需要6列。但如果你少于这个数量,你需要像下面这样指定:

$('#table').DataTable({ columnDefs: [ { goals: [4]  }]  });  }

0

我遇到了相同的问题。在我的情况下,我有5列,但是在可排序目标中,我设置为7列。因此,请确保您在可排序目标中没有提及额外的列。

{ "orderable": false, "targets": [1,2,3,4] }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接