2012-02-22 29 views
2

我使用下面的jQuery对页面加载排序(降序)表。它只在单击箭头进行降序或升序后才起作用。但是,我的要求是在页面加载时对表格进行排序。任何帮助都会被赞赏。按页面加载降序默认排序

$(document).ready(function() { 
oTable = $('#personsList').dataTable({ 
        "bJQueryUI": true, 
        "sPaginationType": "full_numbers", 
        "iDisplayLength": 25, 
        "aLengthMenu": [25, 50, 100, 150], 
        "aaSorting": [],      
        "bPaginate": false    
       }); 

回答

6

您应该使用aaSorting参数来初始化特定列上的排序。

下面的代码对第一列asc进行排序。

  $(document).ready(function() { 
       oTable = $('#personsList').dataTable({ 
       "bJQueryUI": true, 
       "sPaginationType": "full_numbers", 
       "iDisplayLength": 25, 
       "aLengthMenu": [25, 50, 100, 150], 
       "aaSorting": [[0,'asc']],  //Sorts 1st column asc    
       "bPaginate": false    
      }); 

Complete datatables params reference

+0

我的表只有一列 – 1078081 2012-02-22 22:21:50

+0

@ user1078081然后使用“aaSorting”:[[0,'asc']] – 2012-02-22 22:28:06

+0

我使用了“aaSorting”:[[0,'desc']],并在所需的页面加载中进行降序排序。谢谢! – 1078081 2012-02-22 22:30:49

0

什么方法被调用,当你点击排序箭头?为什么不调用这个方法作为document.ready函数中的最后一个方法调用?

2

通过这个代码,你可以通过添加类的排序递减“或“排序ASC”排序上升并在页面加载下来在数据表单独列进行排序

$('.dom-table').each(function(index) { 
     var sort_column=$('.dom-table thead tr').children().index('.sort-desc'); 
     var sort_oper='desc'; 
     if(sort_column < 0) 
     { 
      var sort_column=$('.dom-table thead tr').children().index('.sort-asc'); 
      sort_oper='asc'; 
      if(sort_column < 0) 
      { 
       sort_column=0; 
      } 
     } 
     $(this).dataTable({ 
     "sDom": 'T<"clear">lfrtip', 
     "aaSorting": [[sort_column,sort_oper]], 
    }); 
}); 

我没有测试过这段代码,但它应该可以工作。

0

您可以使用命令属性来实现相同。

例如在下面的表将在通过四纵降序顺序排列(索引从零开始!)

var table = $('#example').DataTable({ 

      "order": [ 
         [3, 'desc']  
        ] 
     }); 

结帐this Fiddle