J'essaie de travailler avec le JS Datatable de jQuery pour mon projet à partir de ce lien.
J'ai téléchargé la bibliothèque complète de la même source. Tous les exemples donnés dans le package semblent fonctionner correctement, mais lorsque j'essaye de les incorporer dans my WebForms
, le CSS, JS ne fonctionne pas du tout.
Voici ce que j'ai fait:
<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>
Ma structure de fichiers pour le JS et le CSS dans ma solution se présente comme suit:
J'ai ajouté toutes les références JS et CSS nécessaires comme indiqué dans le manuel. Le rendu n'est toujours pas comme prévu. Il n'y a pas de CSS et même le JS ne fonctionne pas.
Également dans la console, j'obtiens les erreurs suivantes:
ReferenceError: jQuery is not defined
TypeError: $(...).DataTable is not a function
Je n'ai toujours lié aucune donnée dynamique ici (comme dans un répéteur ou plus), mais cela ne fonctionne toujours pas.
Quelqu'un peut-il s'il vous plaît me guider dans la bonne direction pour ce problème?
la source
Réponses:
CAUSE
Il peut y avoir plusieurs raisons à cette erreur.
SOLUTION
N'incluez qu'une seule version de la bibliothèque jQuery version 1.7 ou plus récente avant jQuery DataTables.
Par exemple:
<script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery.dataTables.min.js" type="text/javascript"></script>
Voir jQuery DataTables: Erreurs de console JavaScript courantes pour plus d'informations à ce sujet et sur d'autres erreurs de console courantes.
la source
Cela a fonctionné pour moi. Mais assurez-vous de charger le jquery.js avant le fichier dataTable.js préféré. À votre santé!
<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>
la source
J'ai eu cette erreur parce que j'ai découvert que j'avais référencé jQuery deux fois.
La première fois: sur la page maître (
_Layout.cshtml
) dans ASP.NET MVC, puis à nouveau sur une page en cours, j'ai donc commenté celle de la page maître.Si vous utilisez ASP.NET MVC, cet extrait de code peut vous aider
@*@Scripts.Render("~/bundles/jquery")*@//comment this line @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)
et dans la page actuelle j'ai ajouté ces lignes
<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 -->
J'espère que cela vous aidera même si vous n'utilisez pas ASP.NET MVC
la source
si, pour une raison quelconque, deux versions de jQuery sont chargées (ce qui n'est pas recommandé), l'appel à
$.noConflict(true)
partir de la deuxième version renverra les variables jQuery de portée globale à celles de la première version.Parfois, cela peut être un problème avec une version plus ancienne (ou non stable) des fichiers JQuery
Utilisation de la solution
$.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>
la source
Voici l'ensemble complet de JS et CSS requis pour que le plugin de table d'exportation fonctionne parfaitement.
J'espère que cela vous fera gagner du temps
<!--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 pour ajouter des boutons d'exportation sur la table avec id =
tbl
$('#tbl').DataTable({ dom: 'Bfrtip', buttons: [ 'copy', 'csv', 'excel', 'pdf', 'print' ] });
Résultat :-
la source
Il peut y avoir deux raisons à cette erreur:
Première
Vous logez
jQuery.DataTables.js
avantjquery.js
donc pour cela: -Vous devez charger
jQuery.js
avant de chargerjQuery.DataTables.js
Seconde
Vous utilisez deux versions de
jQuery.js
sur la même page donc pour cela: -Essayez d'utiliser la version supérieure et assurez-vous que les deux liens ont la même version de
jQuery
la source
Honnêtement, cela a pris des heures pour résoudre ce problème. Finalement une seule chose a fonctionné une reconfirmation à la solution fournie par "Basheer AL-MOMANI". Ce qui est juste une déclaration
@RenderSection("scripts", required: false)
dans le
_Layout.cshtml
fichier après tous les<script></script>
éléments et en commentant également le script jquery dans le même fichier. Deuxièmement, je devais ajouterdans l'appel de fonction jquery à un autre fichier * .cshtml comme:
$(document).readyfunction () { $.noConflict(); $("#example1").DataTable(); $('#example2').DataTable({ "paging": true, "lengthChange": false, "searching": false, "ordering": true, "info": true, "autoWidth": false, }); });
la source
J'ai également rencontré cette erreur. Pour une raison quelconque, j'avais initialement codé
var table = $('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
Cela ne lèverait pas l'erreur parfois et d'autres fois. En changeant le code en
$('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
L'erreur semble s'être arrêtée
la source
Je sais que son achat tardif peut aider quelqu'un
Cela peut également se produire si vous n'ajoutez pas
$('#myTable').DataTable();
à l'intérieur dudocument.ready
Alors au lieu de ça
$('#myTable').DataTable();
Essaye ça
$(document).ready(function() { $('#myTable').DataTable(); });
la source
Dans mon cas, la solution était de supprimer les cookies du navigateur.
la source
// 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">
la source
Ayant le même problème dans Flask, j'avais déjà un modèle qui chargeait JQuery, Popper et Bootstrap. J'étendais ce modèle dans un autre modèle que j'utilisais comme base pour charger la page contenant le tableau.
Pour une raison quelconque, dans Flask, apparemment, les fichiers du modèle externe se chargent avant les fichiers des tables ci-dessus dans la hiérarchie (ceux que vous étendez), donc JQuery se chargeait avant les fichiers DataTables à l'origine du problème.
J'ai dû créer un autre modèle où j'exécute toutes mes importations de CDN JS au même endroit, ce qui a résolu le problème.
la source