Ich versuche, über diesen Link mit jQuerys Datatable JS für mein Projekt zu arbeiten .
Ich habe die komplette Bibliothek von derselben Quelle heruntergeladen. Alle im Paket angegebenen Beispiele scheinen gut zu funktionieren, aber wenn ich versuche, sie in mein WebForms
CSS, JS zu integrieren, funktionieren sie überhaupt nicht.
Folgendes habe ich getan:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="myTable" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
<tbody>
<!-- table body -->
</tbody>
</table>
</div>
<script src="js/jquery.dataTables.js" type="text/javascript"></script>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#myTable').DataTable();
});
</script>
</form>
</body>
</html>
Meine Dateistruktur für JS und CSS in meiner Lösung sieht wie folgt aus:
Ich habe alle erforderlichen JS- und CSS-Referenzen hinzugefügt, wie im Handbuch gezeigt. Trotzdem ist das Rendering nicht wie erwartet. Es gibt kein CSS und selbst das JS funktioniert nicht.
Auch in der Konsole erhalte ich folgende Fehler:
ReferenceError: jQuery is not defined
TypeError: $(...).DataTable is not a function
Ich habe hier noch keine dynamischen Daten gebunden (wie in einem Repeater oder so), aber es funktioniert immer noch nicht.
Kann mich bitte jemand in die richtige Richtung für dieses Problem führen?
quelle
Antworten:
URSACHE
Es kann mehrere Gründe für diesen Fehler geben.
LÖSUNG
Fügen Sie vor jQuery DataTables nur eine Version der jQuery-Bibliothek Version 1.7 oder höher ein.
Zum Beispiel:
<script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery.dataTables.min.js" type="text/javascript"></script>
Weitere Informationen zu diesem und anderen häufigen Konsolenfehlern finden Sie unter jQuery DataTables: Häufige JavaScript-Konsolenfehler .
quelle
Das hat bei mir funktioniert. Stellen Sie jedoch sicher, dass Sie die Datei jquery.js vor der bevorzugten Datei dataTable.js laden. Prost!
<script type="text/javascript" src="~/Scripts/jquery.js"></script> <script type="text/javascript" src="~/Scripts/data-table/jquery.dataTables.js"></script> <script>$(document).ready(function () { $.noConflict(); var table = $('# your selector').DataTable(); });</script>
quelle
Ich habe diesen Fehler erhalten, weil ich herausgefunden habe, dass ich zweimal auf jQuery verwiesen habe.
Das erste Mal: auf der Masterseite (
_Layout.cshtml
) in ASP.NET MVC und dann wieder auf einer aktuellen Seite, also habe ich die auf der Masterseite auskommentiert.Wenn Sie ASP.NET MVC verwenden, kann Ihnen dieses Snippet helfen
@*@Scripts.Render("~/bundles/jquery")*@//comment this line @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)
und auf der aktuellen Seite habe ich diese Zeilen hinzugefügt
<script src="~/scripts/jquery-1.10.2.js"></script> <!-- #region datatables files --> <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css" /> <script src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <!-- #endregion -->
Ich hoffe, dies hilft Ihnen, auch wenn Sie ASP.NET MVC nicht verwenden
quelle
Wenn aus irgendeinem Grund zwei Versionen von jQuery geladen werden (was nicht empfohlen wird), werden beim Aufrufen
$.noConflict(true)
ab der zweiten Version die jQuery-Variablen mit globalem Gültigkeitsbereich an die der ersten Version zurückgegeben.Manchmal kann es zu Problemen mit älteren Versionen (oder nicht stabilen) von JQuery-Dateien kommen
Lösungsgebrauch
$.noConflict();
<script src="js/jquery.js" type="text/javascript"></script> <script src="js/jquery.dataTables.js" type="text/javascript"></script> <script> $.noConflict(); jQuery( document ).ready(function( $ ) { $('#myTable').DataTable(); }); // Code that uses other library's $ can follow here. </script>
quelle
Hier finden Sie den vollständigen Satz von JS und CSS, die erforderlich sind, damit das Exporttabellen-Plugin einwandfrei funktioniert.
Hoffe, es wird Ihre Zeit sparen
<!--Import jQuery before export.js--> <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <!--Data Table--> <script type="text/javascript" src=" https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src=" https://cdn.datatables.net/buttons/1.2.4/js/dataTables.buttons.min.js"></script> <!--Export table buttons--> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script> <script type="text/javascript" src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.24/build/pdfmake.min.js" ></script> <script type="text/javascript" src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.24/build/vfs_fonts.js"></script> <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.2.4/js/buttons.html5.min.js"></script> <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.2.1/js/buttons.print.min.js"></script> <!--Export table button CSS--> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css"> <link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.2.4/css/buttons.dataTables.min.css">
Javascript zum Hinzufügen von Exportschaltflächen zur Tabelle mit id =
tbl
$('#tbl').DataTable({ dom: 'Bfrtip', buttons: [ 'copy', 'csv', 'excel', 'pdf', 'print' ] });
Ergebnis: -
quelle
Für diesen Fehler kann es zwei Gründe geben:
Zuerst
Sie lodieren
jQuery.DataTables.js
vorherjquery.js
so dafür: -Sie müssen laden,
jQuery.js
bevor Sie ladenjQuery.DataTables.js
Zweite
Sie verwenden dafür zwei Versionen
jQuery.js
auf derselben Seite: -Versuchen Sie, die höhere Version zu verwenden, und stellen Sie sicher, dass beide Links dieselbe Version von haben
jQuery
quelle
Ehrlich gesagt, es dauerte Stunden, um dies zu beheben. Schließlich hat nur eines eine Bestätigung der von "Basheer AL-MOMANI" bereitgestellten Lösung bewirkt. Welches ist nur eine Aussage
@RenderSection("scripts", required: false)
innerhalb der
_Layout.cshtml
Datei nach allen<script></script>
Elementen und auch das jquery-Skript in der gleichen Datei kommentieren. Zweitens musste ich hinzufügenRufen Sie innerhalb der jquery-Funktion eine andere * .cshtml-Datei auf als:
$(document).readyfunction () { $.noConflict(); $("#example1").DataTable(); $('#example2').DataTable({ "paging": true, "lengthChange": false, "searching": false, "ordering": true, "info": true, "autoWidth": false, }); });
quelle
Ich bin auch auf diesen Fehler gestoßen. Aus irgendeinem Grund hatte ich ursprünglich codiert
var table = $('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
Dies würde den Fehler manchmal und manchmal nicht auslösen. Durch Ändern des Codes in
$('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
Der Fehler scheint gestoppt zu sein
quelle
Ich weiß, dass der späte Kauf jemandem helfen kann
Dies kann auch passieren, wenn Sie nicht
$('#myTable').DataTable();
innerhalb der hinzufügendocument.ready
Also stattdessen
$('#myTable').DataTable();
Versuche dies
$(document).ready(function() { $('#myTable').DataTable(); });
quelle
In meinem Fall bestand die Lösung darin, Cookies aus dem Browser zu löschen.
quelle
// you can get the Jquery's librairies online with adding those two rows in your page <script type="text/javascript" src=" https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
quelle
Mit dem gleichen Problem in Flask hatte ich bereits eine Vorlage, die JQuery, Popper und Bootstrap lud. Ich habe diese Vorlage in eine andere Vorlage erweitert, die ich als Basis zum Laden der Seite mit der Tabelle verwendet habe.
Aus irgendeinem Grund werden in Flask anscheinend die Dateien in der äußeren Vorlage vor den Dateien in den Tabellen oben in der Hierarchie geladen (die, die Sie erweitern), sodass JQuery vor den DataTables-Dateien geladen wurde, die das Problem verursacht haben.
Ich musste eine andere Vorlage erstellen, in der ich alle meine Importe von JS-CDNs an derselben Stelle ausführte, wodurch das Problem behoben wurde.
quelle