Не удалось разрешить Datatable SCRIPT5007: Не удалось установить свойство "_DT_CellIndex" неопределенной или нулевой ссылки

Я не могу разрешить следующую ошибку Datatables:

SCRIPT5007: Невозможно установить свойство "_DT_CellIndex" неопределенной или нулевой ссылки

Я попытался посмотреть по всему Интернету и нашел, что это лучшее решение. Но я все еще не могу решить эту проблему. Я что-то упустил? Я новичок в JavaScript.

Ответ 1

В основном эта проблема возникла из-за совпадения совпадений count th to td. убедитесь, что число совпадений соответствует td. Надеюсь, что это поможет вам.

Ответ 2

У нас была та же ошибка, что исправлено для нас, это изменение цели (target) в инициализации данных, основанной на количестве столбцов, начинающихся с 0

В нашей таблице у нас было 4 столбца: taget: [3]

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

Ответ 3

нашел этот ответ здесь: datatable forums

Простая ошибка: заголовок таблицы имел столбец "без заголовка", но столбец не существовал в самой таблице. Я не видел, чтобы он отсутствовал (потому что o без названия и без границ).

это сработало?

Ответ 4

Проверьте количество столбцов таблицы и dtColumnDefs. Если у вас есть 6 столбцов, то ниже будет ваша конфигурация для dtColumnDefs.

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

Ответ 5

Я починил это. Это был js part vs html.

Проблема возникла, когда я удалил столбец html и забыл удалить столбец js, который выглядит так.

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

Как только я удалил лишний столбец в js, все заработало.

Ответ 6

Чтобы решить эту ошибку:

Невозможно установить свойство "_DT_CellIndex" неопределенного

Сначала я говорю вам, что $("id_tu_tabla").Datatable() имеет минимальное количество столбцов, но это 6. Но если у вас меньше этого, вы указали его, как с помощью этого кода:

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

Ответ 7

Кажется, что многие люди получили ошибку из-за несовпадения th и td. Для меня я получил ошибку с тем, что казалось логической ошибкой. Посмотрите код ниже.

Примечание: это я экспериментировал с таблицами данных в Angular 7, улучшая такие вещи, как * ngFor, ng-container, * ngIf, но не обращайте на это внимания, просто посмотрите на структурную разницу кода (поменяйте местами tr с помощью 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> 

Ответ 8

Если вам необходимо показать строку с сообщением "Запись не найдена", как показано ниже

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

затем просто удалите это условие, потому что datatable сам добавляет сообщение "Нет данных в таблице", в моем случае это решает мою ошибку

Ответ 9

У меня была похожая проблема, и она была устранена путем удаления знака "$", который был среди названий столбцов. Надеюсь это поможет.