Trong bài này, bạn sẽ được học cách phân trang cho bảng biểu bằng Bootstrap 4 và thư viện DataTables kèm theo. Một số lưu ý bạn cần nắm trong bài như sau. Bài viết sẽ sử dụng phân trang ảo, có nghĩa là dữ liệu được tải hoàn toàn trên trang Web rồi mới phân trang. Đây là cách phân trang chỉ giúp cho giao diện của bạn đẹp hơn, tương tác với người dùng tốt hơn nhưng không có ý nghĩa về mặt tiết kiệm băng thông so với cách phân trang truyền thống. Do đó, không nên lạm dụng cách phân trang này, trừ khi bạn muốn làm giao diện đẹp và thẩm mỹ.phân trang ảo, có nghĩa là dữ liệu được tải hoàn toàn trên trang Web rồi mới phân trang. Đây là cách phân trang chỉ giúp cho giao diện của bạn đẹp hơn, tương tác với người dùng tốt hơn nhưng không có ý nghĩa về mặt tiết kiệm băng thông so với cách phân trang truyền thống. Do đó, không nên lạm dụng cách phân trang này, trừ khi bạn muốn làm giao diện đẹp và thẩm mỹ.
Thư viện DataTables
Thư viện DataTables là một thư viện chuyên về xử lý các tương tác với bảng biểu [Tables] cũng như giúp bảng biểu thể hiện đẹp mắt hơn với người dùng. Bạn có thể tìm hiểu thêm thư viện này ở địa chỉ //datatables.net/.
Để thực hiện cài đặt DataTables vào Bootstrap 4, bạn chỉ cần thêm đúng 3 thư viện sau vào phần Header của trang web bên cạnh các thư viện của Bootstrap khác. Các tập tin của DataTables cần nhúng đó là: jquery.dataTables.min.js, dataTables.bootstrap4.min.js và dataTables.bootstrap4.min.css. DataTables cũng hoạt động với Bootstrap 3, nhưng chúng ta không sử dụng trong bài này.jquery.dataTables.min.js, dataTables.bootstrap4.min.js và dataTables.bootstrap4.min.css. DataTables cũng hoạt động với Bootstrap 3, nhưng chúng ta không sử dụng trong bài này.
Ví dụ Bootstrap --- dammio.com ...
Kết hợp với Bootstrap 4
Bạn tạo một bảng biểu [Table] trong Bootstrap 4 như bình thường, sau đó chèn 1 đoạn script JQuery nhỏ ở đầu trang như trong ví dụ sau. Trong ví dụ, bạn có thể thấy dòng $[‘#example’].dataTable[{}] dùng để gọi bảng có id=”example” để nhúng vào thư viện DataTables và chuyển thành dạng bảng được phân trang.id=”example” để nhúng vào thư viện DataTables và chuyển thành dạng bảng được phân trang.
Phân trang ảo với Bootstrap --- dammio.com $[document].ready[function[] { $['#example'].dataTable[{}]; // dòng này để nhúng bảng biểu thành dạng bảng được phân trang } ];
Name Position Office Age Start date Salary Tiger Nixon System Architect Edinburgh 61 2011/04/25 $320,800 Garrett Winters Accountant Tokyo 63 2011/07/25 $170,750 Ashton Cox Junior Technical Author San Francisco 66 2009/01/12 $86,000 Cedric Kelly Senior Javascript Developer Edinburgh 22 2012/03/29 $433,060 Airi Satou Accountant Tokyo 33 2008/11/28 $162,700 Brielle Williamson Integration Specialist New York 61 2012/12/02 $372,000 Herrod Chandler Sales Assistant San Francisco 59 2012/08/06 $137,500 Rhona Davidson Integration Specialist Tokyo 55 2010/10/14 $327,900 Colleen Hurst Javascript Developer San Francisco 39 2009/09/15 $205,500 Sonya Frost Software Engineer Edinburgh 23 2008/12/13 $103,600 Jena Gaines Office Manager London 30 2008/12/19 $90,560 Quinn Flynn Support Lead Edinburgh 22 2013/03/03 $342,000 Charde Marshall Regional Director San Francisco 36 2008/10/16 $470,600 Haley Kennedy Senior Marketing Designer London 43 2012/12/18 $313,500 Tatyana Fitzpatrick Regional Director London 19 2010/03/17 $385,750 Michael Silva Marketing Designer London 66 2012/11/27 $198,500 Paul Byrd Chief Financial Officer [CFO] New York 64 2010/06/09 $725,000 Gloria Little Systems Administrator New York 59 2009/04/10 $237,500 Bradley Greer Software Engineer London 41 2012/10/13 $132,000 Dai Rios Personnel Lead Edinburgh 35 2012/09/26 $217,500 Jenette Caldwell Development Lead New York 30 2011/09/03 $345,000 Yuri Berry Chief Marketing Officer [CMO] New York 40 2009/06/25 $675,000 Caesar Vance Pre-Sales Support New York 21 2011/12/12 $106,450 Doris Wilder Sales Assistant Sydney 23 2010/09/20 $85,600 Angelica Ramos Chief Executive Officer [CEO] London 47 2009/10/09 $1,200,000 Gavin Joyce Developer Edinburgh 42 2010/12/22 $92,575 Jennifer Chang Regional Director Singapore 28 2010/11/14 $357,650 Brenden Wagner Software Engineer San Francisco 28 2011/06/07 $206,850 Fiona Green Chief Operating Officer [COO] San Francisco 48 2010/03/11 $850,000 Shou Itou Regional Marketing Tokyo 20 2011/08/14 $163,000 Michelle House Integration Specialist Sydney 37 2011/06/02 $95,400 Suki Burks Developer London 53 2009/10/22 $114,500 Prescott Bartlett Technical Author London 27 2011/05/07 $145,000 Gavin Cortez Team Leader San Francisco 22 2008/10/26 $235,500 Martena Mccray Post-Sales support Edinburgh 46 2011/03/09 $324,050 Unity Butler Marketing Designer San Francisco 47 2009/12/09 $85,675 Howard Hatfield Office Manager San Francisco 51 2008/12/16 $164,500 Hope Fuentes Secretary San Francisco 41 2010/02/12 $109,850 Vivian Harrell Financial Controller San Francisco 62 2009/02/14 $452,500 Timothy Mooney Office Manager London 37 2008/12/11 $136,200 Jackson Bradshaw Director New York 65 2008/09/26 $645,750 Olivia Liang Support Engineer Singapore 64 2011/02/03 $234,500 Bruno Nash Software Engineer London 38 2011/05/03 $163,500 Sakura Yamamoto Support Engineer Tokyo 37 2009/08/19 $139,575 Thor Walton Developer New York 61 2013/08/11 $98,540 Finn Camacho Support Engineer San Francisco 47 2009/07/07 $87,500 Serge Baldwin Data Coordinator Singapore 64 2012/04/09 $138,575 Zenaida Frank Software Engineer New York 63 2010/01/04 $125,250 Zorita Serrano Software Engineer San Francisco 56 2012/06/01 $115,000 Jennifer Acosta Junior Javascript Developer Edinburgh 43 2013/02/01 $75,650 Cara Stevens Sales Assistant New York 46 2011/12/06 $145,600 Hermione Butler Regional Director London 47 2011/03/21 $356,250 Lael Greer Systems Administrator London 21 2009/02/27 $103,500 Jonas Alexander Developer San Francisco 30 2010/07/14 $86,500 Shad Decker Regional Director Edinburgh 51 2008/11/13 $183,000 Michael Bruce Javascript Developer Singapore 29 2011/06/27 $183,000 Donna Snider Customer Support New York 27 2011/01/25 $112,000 Name Position Office Age Start date Salary
Cấu hình nhãn tiếng Việt
Có nhiều cách để cấu hình nhãn tiếng Việt nhưng cách tốt nhất chính là ghi đè cấu hình các nhãn trong bảng như sau. Bạn làm việc này chủ yếu ở phần script và cấu hình nhãn theo ý muốn.
Phân trang ảo với Bootstrap 4 --- dammio.com $[document].ready[function[] { // Cấu hình các nhãn phân trang $['#example'].dataTable[ { "language": { "sProcessing": "Đang xử lý...", "sLengthMenu": "Xem _MENU_ mục", "sZeroRecords": "Không tìm thấy dòng nào phù hợp", "sInfo": "Đang xem _START_ đến _END_ trong tổng số _TOTAL_ mục", "sInfoEmpty": "Đang xem 0 đến 0 trong tổng số 0 mục", "sInfoFiltered": "[được lọc từ _MAX_ mục]", "sInfoPostFix": "", "sSearch": "Tìm:", "sUrl": "", "oPaginate": { "sFirst": "Đầu", "sPrevious": "Trước", "sNext": "Tiếp", "sLast": "Cuối" } } } ]; } ];
Name Position Office Age Start date Salary Tiger Nixon System Architect Edinburgh 61 2011/04/25 $320,800 Garrett Winters Accountant Tokyo 63 2011/07/25 $170,750 Ashton Cox Junior Technical Author San Francisco 66 2009/01/12 $86,000 Cedric Kelly Senior Javascript Developer Edinburgh 22 2012/03/29 $433,060 Airi Satou Accountant Tokyo 33 2008/11/28 $162,700 Brielle Williamson Integration Specialist New York 61 2012/12/02 $372,000 Herrod Chandler Sales Assistant San Francisco 59 2012/08/06 $137,500 Rhona Davidson Integration Specialist Tokyo 55 2010/10/14 $327,900 Colleen Hurst Javascript Developer San Francisco 39 2009/09/15 $205,500 Sonya Frost Software Engineer Edinburgh 23 2008/12/13 $103,600 Jena Gaines Office Manager London 30 2008/12/19 $90,560 Quinn Flynn Support Lead Edinburgh 22 2013/03/03 $342,000 Charde Marshall Regional Director San Francisco 36 2008/10/16 $470,600 Haley Kennedy Senior Marketing Designer London 43 2012/12/18 $313,500 Tatyana Fitzpatrick Regional Director London 19 2010/03/17 $385,750 Michael Silva Marketing Designer London 66 2012/11/27 $198,500 Paul Byrd Chief Financial Officer [CFO] New York 64 2010/06/09 $725,000 Gloria Little Systems Administrator New York 59 2009/04/10 $237,500 Bradley Greer Software Engineer London 41 2012/10/13 $132,000 Dai Rios Personnel Lead Edinburgh 35 2012/09/26 $217,500 Jenette Caldwell Development Lead New York 30 2011/09/03 $345,000 Yuri Berry Chief Marketing Officer [CMO] New York 40 2009/06/25 $675,000 Caesar Vance Pre-Sales Support New York 21 2011/12/12 $106,450 Doris Wilder Sales Assistant Sydney 23 2010/09/20 $85,600 Angelica Ramos Chief Executive Officer [CEO] London 47 2009/10/09 $1,200,000 Gavin Joyce Developer Edinburgh 42 2010/12/22 $92,575 Jennifer Chang Regional Director Singapore 28 2010/11/14 $357,650 Brenden Wagner Software Engineer San Francisco 28 2011/06/07 $206,850 Fiona Green Chief Operating Officer [COO] San Francisco 48 2010/03/11 $850,000 Shou Itou Regional Marketing Tokyo 20 2011/08/14 $163,000 Michelle House Integration Specialist Sydney 37 2011/06/02 $95,400 Suki Burks Developer London 53 2009/10/22 $114,500 Prescott Bartlett Technical Author London 27 2011/05/07 $145,000 Gavin Cortez Team Leader San Francisco 22 2008/10/26 $235,500 Martena Mccray Post-Sales support Edinburgh 46 2011/03/09 $324,050 Unity Butler Marketing Designer San Francisco 47 2009/12/09 $85,675 Howard Hatfield Office Manager San Francisco 51 2008/12/16 $164,500 Hope Fuentes Secretary San Francisco 41 2010/02/12 $109,850 Vivian Harrell Financial Controller San Francisco 62 2009/02/14 $452,500 Timothy Mooney Office Manager London 37 2008/12/11 $136,200 Jackson Bradshaw Director New York 65 2008/09/26 $645,750 Olivia Liang Support Engineer Singapore 64 2011/02/03 $234,500 Bruno Nash Software Engineer London 38 2011/05/03 $163,500 Sakura Yamamoto Support Engineer Tokyo 37 2009/08/19 $139,575 Thor Walton Developer New York 61 2013/08/11 $98,540 Finn Camacho Support Engineer San Francisco 47 2009/07/07 $87,500 Serge Baldwin Data Coordinator Singapore 64 2012/04/09 $138,575 Zenaida Frank Software Engineer New York 63 2010/01/04 $125,250 Zorita Serrano Software Engineer San Francisco 56 2012/06/01 $115,000 Jennifer Acosta Junior Javascript Developer Edinburgh 43 2013/02/01 $75,650 Cara Stevens Sales Assistant New York 46 2011/12/06 $145,600 Hermione Butler Regional Director London 47 2011/03/21 $356,250 Lael Greer Systems Administrator London 21 2009/02/27 $103,500 Jonas Alexander Developer San Francisco 30 2010/07/14 $86,500 Shad Decker Regional Director Edinburgh 51 2008/11/13 $183,000 Michael Bruce Javascript Developer Singapore 29 2011/06/27 $183,000 Donna Snider Customer Support New York 27 2011/01/25 $112,000 Name Position Office Age Start date Salary
Cấu hình các thông số mặc định
Ngoài ra, bạn còn có thể cấu hình các thông số mặc định khác như số trang, sắp xếp cột,… Tất cả các thao tác này đều thực hiện thông qua đoạn script nhỏ nằm đầu trang như sau.
$[document].ready[function[] { // Cấu hình các nhãn phân trang $['#example'].dataTable[ { "language": { "sProcessing": "Đang xử lý...", "sLengthMenu": "Xem _MENU_ mục", "sZeroRecords": "Không tìm thấy dòng nào phù hợp", "sInfo": "Đang xem _START_ đến _END_ trong tổng số _TOTAL_ mục", "sInfoEmpty": "Đang xem 0 đến 0 trong tổng số 0 mục", "sInfoFiltered": "[được lọc từ _MAX_ mục]", "sInfoPostFix": "", "sSearch": "Tìm:", "sUrl": "", "oPaginate": { "sFirst": "Đầu", "sPrevious": "Trước", "sNext": "Tiếp", "sLast": "Cuối" } }, "processing": true, // tiền xử lý trước "aLengthMenu": [[5, 10, 20, 50], [5, 10, 20, 50]], // danh sách số trang trên 1 lần hiển thị bảng "order": [[ 1, 'desc' ]] //sắp xếp giảm dần theo cột thứ 1 } ]; } ];
Kết luận
Thông qua bài viết hi vọng bạn học hỏi thêm nhiều điều về phân trang trong Bootstrap 4 và kết hợp các thư viện, framework khác để có giao diện Web đa dạng hơn.