webentwicklung-frage-antwort-db.com.de

Datatable SCRIPT5007 kann nicht aufgelöst werden: Die Eigenschaft '_DT_CellIndex' kann nicht undefiniert oder als NULL-Referenz festgelegt werden

Ich kann folgenden Datatables-Fehler nicht beheben:

SCRIPT5007: Die Eigenschaft '_DT_CellIndex' für undefined oder .__ kann nicht festgelegt werden. Nullreferenz

Ich habe versucht, im ganzen Internet nachzuschauen und habe das als beste Lösung gefunden. Ich kann dieses Problem aber immer noch nicht lösen. Fehlt mir hier etwas? Ich bin ein Neuling in JavaScript.

11
Frank D.

Grundsätzlich wurde dieses Problem aufgrund der fehlenden Übereinstimmungszählung von th bis td angezeigt. Achten Sie auf die Anzahl der Übereinstimmungen mit td. hoffe das wird dir helfen.

20
Ravi Mane

Wir hatten den gleichen Fehler, was für uns behoben wurde, ist das Ändern des (Ziels) in der datierbaren Initialisierung basierend auf der Anzahl der Spalten, die bei 0 beginnen

In unserer Tabelle hatten wir 4 Spalten, also taget: [3]

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

fand diese Antwort hier: datatable Foren

Ein einfacher Fehler, der Tabellenkopf hatte eine Spalte mit dem Titel "no ", Aber die Spalte war in der Tabelle selbst nicht vorhanden. Ich konnte nicht Fehlen.

hat es funktioniert?

2
a7madgamal

Ich habe es repariert. Es war js part vs html

Problem trat auf, als ich die HTML-Spalte löschte und vergaß, eine js-Spalte zu löschen, die so aussah.

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

Nachdem ich die zusätzliche Spalte in js gelöscht hatte, funktionierte alles.

0

Wenn Sie die Zeile mit der Meldung "No record found" (Kein Datensatz gefunden) wie im folgenden Code anzeigen möchten

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

dann entfernen Sie einfach diese Bedingung, da datatable selbst die Meldung "Keine Daten in der Tabelle verfügbar" anfügt. In meinem Fall wird der Fehler behoben

0
Zia Qammar

So beheben Sie den Fehler: 

Die Eigenschaft '_DT_CellIndex' kann nicht definiert werden

Zuerst sage ich Ihnen, dass $("id_tu_tabla").Datatable() eine minimale Anzahl von Spalten hat, es sind 6. Aber wenn Sie weniger als das haben, haben Sie es wie in diesem Code angegeben:

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

Es sieht so aus, als hätten viele Menschen den Fehler wegen der Nichtübereinstimmung von Th und Td bekommen. Für mich kam der Fehler mit einem scheinbar logischen Fehler. Schauen Sie sich den Code unten an.

Anmerkung: Hier habe ich mit Datentabellen in Angular 7 experimentiert, Dinge wie * ngFor, ng-container, * ngIf verbessert, aber egal, schauen Sie sich das an Code-Strukturunterschied (tr mit ng-container getauscht).

Tabellenkopf:

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

Dies erzeugt den Fehler:

<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>

Das Umstellen des Codes wie folgt behebt den Fehler:

<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> 

Ich hatte ein ähnliches Problem und es wurde behoben, indem das '$' Zeichen, das sich unter dem Spaltennamen befand, entfernt wurde. Hoffe das hilft.

0
Yoosaf Abdulla

Überprüfen Sie die Anzahl Ihrer Tabellenspalten und dtColumnDefs. Wenn Sie 6 Spalten haben, wird unten Ihre Konfiguration für dtColumnDefs angegeben.

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