无法解析数据表 SCRIPT5007:无法设置未定义或空引用的属性“_DT_CellIndex”

Posted

技术标签:

【中文标题】无法解析数据表 SCRIPT5007:无法设置未定义或空引用的属性“_DT_CellIndex”【英文标题】:Not able to resolve Datatable SCRIPT5007: Unable to set property '_DT_CellIndex' of undefined or null reference 【发布时间】:2017-02-04 00:09:26 【问题描述】:

我无法解决以下数据表错误:

SCRIPT5007:无法设置未定义的属性“_DT_CellIndex”或 空引用

我尝试查看整个互联网并发现this 是最好的解决方案。但我仍然无法解决这个问题。我在这里错过了什么吗?我是 javascript 新手。

【问题讨论】:

这是为我解决这个问题的answer 【参考方案1】:

基本上这个问题是因为 th 与 td 的匹配计数未命中。确保匹配到 td 的数量。希望这会对你有所帮助。

【讨论】:

这对我来说基本上就是这样。添加的列数应与初始化的列数相同。 节省了我的时间 对我来说,我使用 ajax 将数据加载到表中,但在将任何数据加载到表中之前调用了函数 $('#TableID').DataTable(),因此出现了这个问题。所以,我需要在加载表格数据后,在ajax调用的success: function()中调用这个函数。【参考方案2】:

我们有同样的错误!为我们解决的问题是根据从 0 开始的列数更改 dataTable 初始化中的 target

在我们的表格中,我们有 4 列,所以 targets: [3]

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

【讨论】:

【参考方案3】:

在我的情况下,连续使用 colspan,单元格的数量与表格标题不匹配,因此显示此错误。您可以添加这些隐藏单元格以消除该错误。

试试这个

<tr>
    <td colspan="4">details</td>
    <td style="display: none"></td>
    <td style="display: none"></td>
    <td style="display: none"></td>
</tr>

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

【讨论】:

您好,没有详细信息的答案并没有真正的帮助。您能否添加更多详细信息?为什么这会解决问题? 在我的情况下,连续使用 colspan,单元格的数量与表格标题不匹配,因此显示此错误。您可以添加这些隐藏单元格以消除该错误。 编辑你的答案:)【参考方案4】:

在这里找到了这个答案:datatable forums

一个简单的错误,表头有一列 " 没有 标题,但该列在表本身中不存在。我不能 看到它不见了(因为没有标题也没有边框)。

成功了吗?

【讨论】:

好像不行.....你知道如何检查我的表格tad标签td是否与我的表格tbody td匹配吗? 嗨 @a7madgamal 让我在 jsbin 上上传代码,但是 .. 下面是 IE 11 卡住的代码:-for ( i=0, iLen=oSettings.aoColumns.length ; i【参考方案5】:

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

【讨论】:

【参考方案6】:

我修好了。这是 js 部分与 html

当我删除html列并忘记删除看起来像这样的js列时出现问题。

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

一旦我删除了 js 中的额外列,一切都开始工作了。

【讨论】:

【参考方案7】:

解决错误:

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

首先我告诉你$("id_tu_tabla").Datatable() 有最少的列数,它是 6。但是如果你有更少,你已经指定它,就像下面的代码:

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

【讨论】:

【参考方案8】:

似乎很多人都因为 th 和 td 不匹配而得到错误。对我来说,我得到了似乎是逻辑错误的错误。看下面的代码。

注意:这是我在 Angular 7 中试验数据表,增强 *ngFor、ng-container、*ngIf 之类的东西,但别管这些,只看代码结构差异(交换 @ 987654321@ 和 ng-container)。

表头:

<thead>
  <tr>
    <th>Name</th>
    <th>Surname</th>
    <th>Email</th>
    <th>Organisation</th>
  </tr>
</thead>

这会产生错误:

<tr *ngFor="let user of users; let index = index">
  <ng-container *ngIf="showInactiveUsers">
    <td>user?.firstName</td>
    <td>user?.lastName</td>
    <td>user?.email</td>
    <td>user?.attributes?.organisation</td>
  </ng-container>
  <ng-container *ngIf="!showInactiveUsers && user?.enabled">
    <td>user?.firstName</td>
    <td>user?.lastName</td>
    <td>user?.email</td>
    <td>user?.attributes?.organisation</td>
  </ng-container>
</tr>

像下面这样重新排列代码可以解决错误:

<ng-container *ngFor="let user of users; let index = index">
  <tr *ngIf="showInactiveUsers">
    <td>user?.firstName</td>
    <td>user?.lastName</td>
    <td>user?.email</td>
    <td>user?.attributes?.organisation</td>
  </tr>
  <tr *ngIf="!showInactiveUsers && user?.enabled">
    <td>user?.firstName</td>
    <td>user?.lastName</td>
    <td>user?.email</td>
    <td>user?.attributes?.organisation</td>
    <td *ngIf="user?.enabled">
  </tr>
</ng-container> 

【讨论】:

【参考方案9】:

如果您要求显示带有“未找到记录”消息的行,如下代码

@if(Model.Count==0)
    
        <tr>
            <td colspan="3">
                No record found.
            </td>
        </tr>
    

然后只需简单地删除此条件,因为数据表本身会附加“表中没有可用数据”消息,在我的情况下,它解决了我的错误

【讨论】:

【参考方案10】:

我遇到了类似的问题,通过删除列名中的“$”符号得到了解决。希望这会有所帮助。

【讨论】:

【参考方案11】:

检查表列的计数和dtColumnDefs

如果您有 6 列,那么下面将是您对 dtColumnDefs 的配置。

self.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0),
    DTColumnDefBuilder.newColumnDef(1),
    DTColumnDefBuilder.newColumnDef(2),
    DTColumnDefBuilder.newColumnDef(3),
    DTColumnDefBuilder.newColumnDef(4),
    DTColumnDefBuilder.newColumnDef(5)
];

【讨论】:

【参考方案12】:

我遇到了同样的问题。就我而言,我有 5 列,但在可排序的目标中,我设置了 7 列。所以请确保您没有在可订购目标中提到额外的列。

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

【讨论】:

以上是关于无法解析数据表 SCRIPT5007:无法设置未定义或空引用的属性“_DT_CellIndex”的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript错误:SCRIPT5007:无法获取属性'getElementsByTagName'

SCRIPT5007:无法获取属性“show”的值,对象为null或没有定义

IE9 JavaScript 错误:SCRIPT5007:无法获取属性“ui”的值:对象为空或未定义

Error-JavaScript-SCRIPT5007: 无法获取未定义或 null 引用的属性“style”

为啥jqGrid不会加载?

无法读取未定义和未处理的承诺拒绝的属性“捕获”