1.自定義排序(根據字段中的某些內容排序)
//js <script type="text/javascript" src="jquery.dataTables.js"></script> <script type="text/javascript" src="dataTables.numericComma.js"></script> jQuery.extend(jQuery.fn.dataTableExt.oSort, { "html-percent-pre": function (a) { var x = String(a).replace(/<[sS]*?>/g, ""); x = x.replace(/&nbsp;/ig, ""); //去除空格 x = x.replace(/%/, ""); //去除百分號 return parseFloat(x); }, "html-percent-asc": function (a, b) { //正序排序引用方法 return ((a < b) ? -1 : ((a > b) ? 1 : 0)); }, "html-percent-desc": function (a, b) { //倒序排序引用方法 return ((a < b) ? 1 : ((a > b) ? -1 : 0)); } }); var oTable1 = $('#table_report').dataTable({ "aoColumnDefs": [ { "sType": "html-percent", "aTargets": [8] }, //指定列號使用自定義排序 ], "bLengthChange": true, //開關,是否顯示每頁大小的下拉框 "aLengthMenu": [[5, 10, 25, -1], [5, 10, 25, "所有"]], 'iDisplayLength': 25, //每頁顯示10條記錄 'bFilter': true, //是否使用內置的過濾功能 "bInfo": true, //開關,是否顯示表格的一些信息 "bPaginate": true //開關,是否顯示分頁器 }); }); </script>
上述內容來自 https://www.dazhuanlan.com/2020/03/07/5e63196a793a1/
2.多列排序
/* datatables允許同時指定多個列排序,有很多不同的方法來實現 用戶按住shirft,鼠標分別點擊第一列,第二列等等,可以實現多列同時排序 給每列加上columns.orderData選項,即如果指定列排序時,第一列有相同數據,則按照第二列排序 使用columns.orderData選項給多列排序,比如[ [0,'asc'], [1,'asc'] ] 使用order()方法實現多列排序,詳細參見api 注意,可以使用orderMulti 選項來禁用用戶按住shift點擊多列排序 */ <script> $(document).ready(function () { $('#example').DataTable({ //ajax: "../data/arrays.txt", columnDefs: [ { targets: [0], orderData: [0,1] }, { targets: [1], orderData: [1,0] } ] }); }); </script>