Saya mencoba bekerja dengan JS Datatable jQuery untuk proyek saya dari tautan ini .
Saya mengunduh perpustakaan lengkap dari sumber yang sama. Semua contoh yang diberikan dalam paket tampaknya berfungsi dengan baik, tetapi ketika saya mencoba memasukkannya ke dalam saya WebForms
, CSS, JS tidak berfungsi sama sekali.
Inilah yang telah saya lakukan:
<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>
Struktur file saya untuk JS dan CSS di Solusi saya terlihat sebagai berikut:
Saya telah menambahkan semua referensi JS dan CSS yang diperlukan seperti yang ditunjukkan di manual. Namun renderingnya tidak seperti yang diharapkan. Tidak ada CSS dan bahkan JS tidak berfungsi.
Juga di konsol saya mendapatkan kesalahan berikut:
ReferenceError: jQuery is not defined
TypeError: $(...).DataTable is not a function
Saya masih belum mengikat data dinamis apa pun di sini (seperti di dalam repeater atau lebih) masih tidak berfungsi.
Bisakah seseorang membimbing saya ke arah yang benar untuk masalah ini?
sumber
Jawaban:
SEBAB
Mungkin ada beberapa alasan untuk kesalahan ini.
LARUTAN
Sertakan hanya satu versi pustaka jQuery versi 1.7 atau yang lebih baru sebelum jQuery DataTables.
Sebagai contoh:
<script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery.dataTables.min.js" type="text/javascript"></script>
Lihat jQuery DataTables: Kesalahan konsol JavaScript umum untuk informasi lebih lanjut tentang ini dan kesalahan konsol umum lainnya.
sumber
Ini berhasil untuk saya. Namun pastikan untuk memuat jquery.js sebelum file dataTable.js pilihan. Bersulang!
<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>
sumber
Saya mendapat kesalahan ini karena saya menemukan bahwa saya mereferensikan jQuery dua kali.
Pertama kali: di halaman master (
_Layout.cshtml
) di ASP.NET MVC, dan kemudian lagi di satu halaman saat ini jadi saya mengomentari halaman master.Jika Anda menggunakan ASP.NET MVC potongan ini dapat membantu Anda
@*@Scripts.Render("~/bundles/jquery")*@//comment this line @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)
dan di halaman saat ini saya menambahkan baris ini
<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 -->
Semoga ini membantu Anda bahkan jika tidak menggunakan ASP.NET MVC
sumber
jika karena alasan tertentu, dua versi jQuery dimuat (yang tidak disarankan), memanggil
$.noConflict(true)
dari versi kedua akan mengembalikan variabel jQuery yang dicakup secara global ke versi pertama.Terkadang itu bisa menjadi masalah dengan versi yang lebih lama (atau tidak stabil) dari file JQuery
Penggunaan solusi
$.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>
sumber
Berikut adalah set lengkap JS dan CSS yang diperlukan agar plugin tabel ekspor berfungsi dengan sempurna.
Semoga ini akan menghemat waktu Anda
<!--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 untuk menambahkan tombol ekspor pada tabel dengan id =
tbl
$('#tbl').DataTable({ dom: 'Bfrtip', buttons: [ 'copy', 'csv', 'excel', 'pdf', 'print' ] });
Hasil: -
sumber
Ada dua alasan untuk kesalahan itu:
Pertama
Anda menginap
jQuery.DataTables.js
sebelumnyajquery.js
untuk itu: -Anda harus memuat
jQuery.js
sebelum memuatjQuery.DataTables.js
Kedua
Anda menggunakan dua versi
jQuery.js
pada halaman yang sama sehingga untuk itu: -Coba gunakan versi yang lebih tinggi dan pastikan kedua tautan memiliki versi yang sama
jQuery
sumber
Sejujurnya, ini membutuhkan waktu berjam-jam untuk memperbaikinya. Akhirnya hanya satu hal yang berhasil yaitu konfirmasi ulang terhadap solusi yang diberikan oleh "Basheer AL-MOMANI". Yang mana hanya sekedar pernyataan
@RenderSection("scripts", required: false)
dalam
_Layout.cshtml
file setelah semua<script></script>
elemen dan juga memberi komentar pada skrip jquery di file yang sama. Kedua, saya harus menambahkandalam panggilan fungsi jquery di file * .cshtml lain sebagai:
$(document).readyfunction () { $.noConflict(); $("#example1").DataTable(); $('#example2').DataTable({ "paging": true, "lengthChange": false, "searching": false, "ordering": true, "info": true, "autoWidth": false, }); });
sumber
Saya mengalami kesalahan ini juga. Untuk alasan apa pun saya awalnya membuat kode
var table = $('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
Ini tidak akan membuang kesalahan kadang-kadang dan di lain waktu itu akan terjadi. Dengan mengubah kode menjadi
$('#myTable').DataTable({ "paging": false, "order": [[ 4, "asc" ]] });
Kesalahan sepertinya telah berhenti
sumber
Saya tahu terlambat Beli dapat membantu seseorang
Ini juga bisa terjadi jika Anda tidak menambahkan
$('#myTable').DataTable();
di dalamdocument.ready
Jadi, bukan ini
$('#myTable').DataTable();
Coba ini
$(document).ready(function() { $('#myTable').DataTable(); });
sumber
Dalam kasus saya, solusinya adalah menghapus cookie dari browser.
sumber
// 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">
sumber
Memiliki masalah yang sama di Flask, saya sudah memiliki template yang memuat JQuery, Popper dan Bootstrap. Saya memperluas template itu ke template lain yang saya gunakan sebagai dasar untuk memuat halaman yang memiliki tabel.
Untuk beberapa alasan di Flask ternyata file di template luar dimuat sebelum file dalam tabel di atas dalam hierarki (yang Anda perluas) jadi JQuery memuat sebelum file DataTables menyebabkan masalah.
Saya harus membuat template lain tempat saya menjalankan semua impor JS CDN saya di tempat yang sama, yang menyelesaikan masalah.
sumber