💡Lỗi hay gặp khi dùng DataTables
Khi sử dụng DataTables (https://datatables.net/), một số lỗi phổ biến mà người dùng hay gặp gồm:
1️⃣ Lỗi “DataTables warning: table id=…”
-
Nguyên nhân:
-
HTML table chưa đúng cấu trúc (
<thead>và<tbody>không đồng nhất). -
Số cột trong
<thead>không khớp với số cột trong<tbody>. -
Table chưa được load khi gọi
$('#table').DataTable()(thường gặp khi table được tạo động bằng JS/Ajax).
-
-
Cách khắc phục:
-
Đảm bảo
<thead>và<tbody>có cùng số cột. -
Khởi tạo DataTable sau khi HTML table đã có trong DOM.
-
Nếu dùng Ajax, sử dụng
$('#table').DataTable({ ajax: ... }).
-
2️⃣ Lỗi không hiển thị dữ liệu Ajax
-
Nguyên nhân:
-
Response JSON không đúng format.
-
Trường
datatrong JSON không đúng. Ví dụ DataTables mặc định đòi{"data": [...]}.
-
-
Cách khắc phục:
$('#table').DataTable({ ajax: { url: '/api/data', dataSrc: '' // nếu JSON trả về mảng trực tiếp } });
3️⃣ Các cột không sắp xếp hoặc filter không đúng
-
Nguyên nhân:
-
Dữ liệu trong cột có format khác nhau (ví dụ số nhưng lưu dưới dạng string).
-
Dữ liệu HTML trong
<td>khiến DataTables không parse được.
-
-
Cách khắc phục:
-
Dùng
renderđể định dạng dữ liệu chuẩn:{ data: 'price', render: $.fn.dataTable.render.number(',', '.', 0, '$') } -
Sử dụng
typecustom nếu cần sort phức tạp.
-
4️⃣ Lỗi CSS / layout
-
Nguyên nhân:
-
Thiếu CSS của DataTables hoặc xung đột với framework (Bootstrap, AdminLTE).
-
Table bị nhỏ hoặc mất thanh cuộn.
-
-
Cách khắc phục:
-
Nhớ import đầy đủ CSS:
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css"> -
Nếu dùng Bootstrap:
dataTables.bootstrap5.min.css. -
Bật
scrollX: truenếu table quá rộng.
-
5️⃣ Lỗi khi dùng destroy() / re-initialize table
-
Nguyên nhân:
-
Gọi
$('#table').DataTable()nhiều lần mà không destroy table cũ.
-
-
Cách khắc phục:
if ($.fn.DataTable.isDataTable('#table')) { $('#table').DataTable().destroy(); } $('#table').DataTable({...});
6️⃣ Lỗi “Cannot read property ‘...' of undefined”
-
Nguyên nhân:
-
Dữ liệu không đúng key mà
columns.datađang trỏ đến. -
Table chưa render xong trước khi thao tác.
-
-
Cách khắc phục:
-
Kiểm tra key đúng với JSON.
-
Sử dụng
columns: [{ data: 'fieldName' }].
-
7️⃣ Lỗi khi dùng Buttons / Export
-
Nguyên nhân:
-
Thiếu JS hoặc CSS liên quan
Buttons,JSZip(Excel),pdfmake(PDF).
-
-
Cách khắc phục:
-
Import đầy đủ các file hỗ trợ export.
-
Kiểm tra thứ tự import đúng: jQuery → DataTables → Buttons → JSZip / pdfmake.
-
Nhận xét
Đăng nhận xét