datatable 自定義排序 及 多列排序


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(/&amp;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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM