Ich habe ein Problem mit Datatables
. Ich bin auch über diesen Link gegangen , der keine Ergebnisse erbracht hat. Ich habe alle Voraussetzungen, unter denen ich Daten analysiere, direkt in das DOM aufgenommen. Bitte helfen Sie mir, dieses Problem zu beheben.
Skript
$(document).ready(function() {
$('.viewCentricPage .teamCentric').dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bPaginate": false,
"bFilter": true,
"bSort": true,
"aaSorting": [
[1, "asc"]
],
"aoColumnDefs": [{
"bSortable": false,
"aTargets": [0]
}, {
"bSortable": true,
"aTargets": [1]
}, {
"bSortable": false,
"aTargets": [2]
}],
});
});
jquery
console
datatables
Thriveni
quelle
quelle
Antworten:
Zu Ihrer Information dataTables erfordert eine wohlgeformte Tabelle. Es muss
<thead>
und<tbody>
Tags enthalten , sonst wird dieser Fehler ausgelöst. Stellen Sie außerdem sicher, dass alle Ihre Zeilen einschließlich der Kopfzeile dieselbe Anzahl von Spalten haben.Das Folgende wird einen Fehler auslösen (nein
<thead>
und<tbody>
Tags)Das Folgende wird auch einen Fehler auslösen (ungleiche Anzahl von Spalten)
Weitere Informationen finden Sie hier
quelle
Eine häufige Ursache dafür
Cannot read property 'fnSetData' of undefined
ist die nicht übereinstimmende Anzahl von Spalten, wie in diesem fehlerhaften Code:Während der folgende Code mit einem
<th>
pro<td>
(Anzahl der Spalten muss übereinstimmen) funktioniert:Der Fehler tritt auch auf, wenn ein wohlgeformter Kopf mit einem Colspan, jedoch ohne zweite Reihe verwendet wird.
Für eine Tabelle mit 7 Spalten funktioniert Folgendes nicht und in der Javascript-Konsole wird "Eigenschaft 'mData' von undefined kann nicht gelesen werden" angezeigt:
Während dies funktioniert:
quelle
tr
zum Einschließen allerth
Elemente verwendete. Lassen Sie es einfach hier, falls jemand dies nützlich findet!th
In meiner Spalte fehlte eine Spaltethead
, die den Fehler verursachte. Die Antwort von Nathan Hanna scheint auch auf dieses Problem hinzuweisen.th
in meinem fehltthead
!colspan
Interpretation sind immer noch ein Problem. Ich musste ein Leerzeichen einfügenth
und neincolspan
, um Fehler loszuwerden. Aber was für ein einfaches Add-On, um diese Funktionalität zu erhalten. Übrigens: Rails 5.1.5, Bootstrap 4.0.0. Ich habe gerade die Stylesheets und Skript-CDNs sowie$(document).ready…
die Seite hinzugefügt .Ich hatte das gleiche Problem bei der Verwendung von DOM-Daten in einer Rails-Ansicht, die über den Gerüstgenerator erstellt wurde. Standardmäßig werden in der Ansicht
<th>
Elemente für die letzten drei Spalten weggelassen (die Links zum Anzeigen, Ausblenden und Zerstören von Datensätzen enthalten). Ich habe festgestellt, dass das Problem behoben wurde , wenn ich Titel für diese Spalten in einem<th>
Element innerhalb des Elements hinzufügte<thead>
.Ich kann nicht sagen, ob dies das gleiche Problem ist, das Sie haben, da ich Ihr HTML nicht sehen kann. Wenn es nicht dasselbe Problem ist, können Sie den Chrome-Debugger verwenden, um herauszufinden, in welcher Spalte ein Fehler auftritt, indem Sie auf den Fehler in der Konsole klicken (der Sie zu dem Code führt, auf dem er fehlschlägt) und dann eine Bedingung hinzufügen Haltepunkt (at
col==undefined
). Wenn es stoppt, können Sie die Variable überprüfen, um festzustellen,i
in welcher Spalte sie sich gerade befindet. Auf diese Weise können Sie herausfinden, was sich an dieser Spalte von den anderen unterscheidet. Hoffentlich hilft das!quelle
colspan="3"
aber ich habe Fehler erhalten (so bin ich auf diese Seite gekommen). Ich spielte ein bisschen herum, gab aber schließlich auf und schuf dreith
Elemente und mit dem ersten "Details" und ließ die letzten beiden leer. Das Herumspielen deutete darauf hin, dass dataTables Probleme mit Colspan als letztem in der Serie hat. Der OP-Fix ist insofern ungerade, als sich die Anzahl der Spalten nicht summiert. Ich hatte keine Bedingungen auf dem Tisch, wieorder
odersortable
. Ich habe diese hinzugefügt, nachdem ich sie zum Laufen gebracht habe.Mit
<thead>
und<tbody>
mit der gleichen Anzahl<th>
und<td>
gelöst mein Problem.quelle
Dies kann auch auftreten, wenn Sie Tabellenargumente für Dinge haben
'aoColumns':[..]
, die nicht mit der richtigen Anzahl von Spalten übereinstimmen. Probleme wie diese können häufig auftreten, wenn Sie Code von anderen Seiten kopieren, um die Integration von Datentabellen schnell zu starten.Beispiel:
Das wird nicht funktionieren:
Aber das wird funktionieren:
quelle
Ein weiterer Grund dafür ist der Spaltenparameter in der DataTable-Initialisierung.
Die Anzahl der Spalten muss mit den Überschriften übereinstimmen
Ich hatte 7 Spalten
quelle
Sie müssen Ihre
colspan
und die Anzahl entfernenth
undtd
müssen übereinstimmen.quelle
Tipps 1:
Unter diesem Link erhalten Sie einige Ideen:
https://datatables.net/forums/discussion/20273/uncaught-typeerror-cannot-read-property-mdata-of-undefined
Tipps 2:
<thead></thead>
&<tbody></tbody>
Tagsstyle='display:none'
derselben Eigenschaft verwenden, gilt dies sowohl für den Header als auch für den Body.<td>, <tr>
Problemequelle
In meinem Fall trat dieser Fehler auf, wenn ich eine Tabelle ohne Header verwende
quelle
Ich hatte den gleichen Fehler, als ich versuchte, Colspan zum letzten Mal hinzuzufügen
und löste es durch Hinzufügen einer versteckten Spalte am Ende von tr
Eine Erklärung dafür ist, dass DataTable aus irgendeinem Grund nicht auf Tabellen mit Colspan im letzten Th angewendet werden kann, sondern angewendet werden kann, wenn Colspan in einem mittleren Th verwendet wird.
Diese Lösung ist etwas hackig, aber einfacher und kürzer als jede andere Lösung, die ich gefunden habe.
Ich hoffe das hilft jemandem.
quelle
Etwas anderes Problem für mich als die oben gegebenen Antworten. Für mich war das HTML-Markup in Ordnung, aber eine meiner Spalten im Javascript fehlte und stimmte nicht mit dem HTML überein.
dh
Mein Skript: -
quelle
Ich hatte einen dynamisch generierten, aber schlecht geformten Tisch mit einem Tippfehler. Ich habe versehentlich ein
<td>
Tag in ein anderes kopiert<td>
. Meine Spaltenanzahl stimmte überein. Ich hatte<thead>
und<tbody>
Tags. Alles stimmte überein, bis auf diesen kleinen Fehler, den ich eine Weile nicht bemerkt hatte, weil meine Kolumne viele Link- und Bild-Tags enthielt.quelle
Ich hatte das gleiche Problem festgestellt, aber ich habe die Tabelle dynamisch generiert . In meinem Fall fehlte meine Tabelle
<thead>
und<tbody>
Tags.Hier ist mein Code-Snippet, wenn es jemandem geholfen hat
quelle
Zusätzlich zu inkonsistenten und Zahlen kann ein fehlendes Element im Teil der Spalten mit datierbaren Skripts auch dies verursachen. Durch die Korrektur wurde die Suchleiste für Datentabellen behoben.
Ich spreche über diesen Teil;
Ich kämpfte mit diesem Fehler, bis ich darauf hingewiesen wurde, dass dieser Teil eine "Null" weniger hatte als meine Gesamtzahl der Köpfe.
quelle
Dieser hat mich verrückt gemacht - wie man eine DataTable erfolgreich in einer .NET MVC-Ansicht rendert. Das hat funktioniert:
Skript in JS-Datei:
quelle
In meinem Fall und mit ASP.NET GridView, UpdatePanel und DropDownList (mit dem ausgewählten Plugin, bei dem ich den Wert mithilfe einer Javascript-Zeile auf Null zurückgesetzt habe) habe ich diesen Fehler erhalten und tagelang alles ohne Hoffnung versucht. Das Problem war, dass der Code meines Dropdowns im Code dahinter wie folgt war. Wenn ich einen Wert zweimal auswähle, um seine Aktion auf ausgewählte Rasterzeilen anzuwenden, wird dieser Fehler angezeigt. Ich dachte tagelang, es sei ein Javascript-Problem (wieder in meinem Fall) und schließlich gab das Update beim Aktualisierungsprozess Null für den Drowpdown-Wert:
Das war meine Schuld:
quelle
Sie müssen Ihre Zeilen
<thead>
für die Spaltenüberschriften und<tbody>
für die Zeilen einschließen. Stellen Sie außerdem sicher, dass Sie die passende Nr. von Spaltenüberschriften<th>
wie Sie für dietd
quelle
Ich kann durch aoColumns Feld entstehen. Wie HIER angegeben
Dann müssen Sie Felder wie in Tabellenspalten hinzufügen
quelle
In meinem Fall ist die Ursache für diesen Fehler, dass ich 2 Tabellen habe, die denselben ID-Namen mit unterschiedlicher Tabellenstruktur haben, da ich es gewohnt bin, Tabellencode zu kopieren und einzufügen. Bitte stellen Sie sicher, dass Sie für jede Tabelle eine andere ID haben.
quelle
Ich habe eine "Lösung" gefunden.
Dieser Code funktioniert nicht:
Aber das ist ok:
Ich denke, das Problem ist, dass der letzte TH kein Attribut colspan haben kann.
quelle