【问题标题】:Default sorting as descending on page load默认排序为页面加载降序
【发布时间】:2012-03-13 07:34:33
【问题描述】:

我正在使用下面的 jQuery 在页面加载时对表进行排序(降序)。它仅在我单击降序或升序箭头后才起作用。但是,我的要求是在页面加载时对表格进行降序排序。感谢任何帮助。

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

【问题讨论】:

    标签: jquery jquery-ui datatable


    【解决方案1】:

    当您单击排序箭头时,调用的是什么方法?为什么不把这个方法作为 document.ready 函数中的最后一个方法调用呢?

    【讨论】:

      【解决方案2】:

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

      下面的代码按升序排列第一列。

                 $(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

      【讨论】:

      • @user1078081 然后使用“aaSorting”:[[0,'asc']]
      • 我使用了 "aaSorting": [[0,'desc']] 并且正在按要求的页面加载降序排序。谢谢!
      • 可能值得更新评论“//Sorts 3rd column asc”,因为您将其更改为 [0,'asc']?只是一个想法。
      【解决方案3】:

      通过此代码,您可以通过添加类“sort-desc”或“sort-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]],
          });
      });
      

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

      【讨论】:

        【解决方案4】:

        您可以使用 order 属性来实现相同的目的。

        例如在下表中,它将按第 4 列按降序排序(索引从零开始!)

        var table = $('#example').DataTable({
        
                    "order": [
                              [3, 'desc']      
                             ]
                });
        

        结帐this Fiddle

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-20
          • 1970-01-01
          • 1970-01-01
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          • 2012-05-12
          相关资源
          最近更新 更多