单击时使用多个列进行数据表js排序

时间:2018-07-16 09:33:23

标签: javascript datatables

您可以使用以下代码轻松地一次对多列进行排序:

 <script type="text/javascript">
  var sortings_arr = [];
  var order = '';

  table = jQuery('#ord').DataTable({
    "order": [[ 0, "desc" ]],
    "lengthMenu": [[20, 30, 50,100, -1], [20, 30, 50,100, "All"]]
  });

  jQuery('#ord th').on('click', function(){
    order = table.order();
    if ($.inArray(order[0][0], $.map(sortings_arr, function(v,i) { return v[0]; })) > -1) {
      key = $.inArray(order[0][0], $.map(sortings_arr, function(v,i) { return v[0]; }));
        if(sortings_arr[key][1] == 'asc'){
          sortings_arr[key][1] = 'desc';
        }else if(sortings_arr[key][1] == 'desc'){
          sortings_arr[key][1] = 'asc';
        }
    }else{
      sortings_arr.push([order[0][0], order[0][1]]);
    }
    table.order(sortings_arr).draw();
  });

  function clear_sorting() {
    table.order( [ 0, 'desc' ] ).draw();
    sortings_arr = [];
  }
</script>

只需根据您的html的ID更改代码即可。如果您想随时重置排序,请在按钮上使用名为“ clear_sorting”的函数。该代码的想法基本上是保留一个具有排序顺序的排序列数组,并使用名为.order()

的数据表js函数重新应用它们。

0 个答案:

没有答案