【问题标题】:sort row groupings in datatables对数据表中的行分组进行排序
【发布时间】:2014-12-24 11:55:38
【问题描述】:

我正在使用数据表和 jquery 行分组..

这里是jsfiddle demo

您可以看到它是一个普通的表格,但是有行分组,绿色的是行组,但是没有办法像我一样通过点击对它们进行排序名称和分数列,对其进行排序的唯一方法是在此代码中将 sGroupingColumnSortDirection: 更改为 "asc""desc"

$(document).ready(function () {
    $('#main').dataTable({
        "bLengthChange": false,
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
    }).rowGrouping({
        sGroupingColumnSortDirection: "asc", //this one is repsonsible for the group sortings
        bExpandableGrouping: true
    });
});

这样可以工作,但用户没有选项或方法来对分组进行排序..

我想过做一个选择下拉菜单,所以它会根据用户选择的内容对分组进行排序。

<label>
Sort place by:
<select>
  <option value="place">Ascending</option>
  <option value="place">Descending</option>
</select>
</label>

那么是否可以使用此选择下拉菜单对分组进行排序?

【问题讨论】:

    标签: javascript jquery sorting datatables grouping


    【解决方案1】:

    首先,为下拉菜单提供一个 id,并为选项提供适当的值。然后,在下拉的“onchange”事件上,需要调用数据表的“fnSort”函数。

    <select id="selectSort">
        <option value="Ascending">Ascending</option>
        <option value="Descending">Descending</option>
    </select>
    

    在您的 jquery document.ready 部分中包含以下代码。

    $("#selectSort").change(function() {
    
        var oTable = $('#main').dataTable();
        var sOption = $(this).val();
        if(sOption == "Ascending") {
            var sType = 'asc';
        }
        else {
            var sType = 'desc';
        }
    
        //code for two columns, change if you have more columns.
        oTable.fnSort( [ [0,sType], [1,sType] ] );  
    
    
    });
    

    更新了小提琴:http://jsfiddle.net/d03ebwdj/1/

    更新: 在您的分组方法中,很难根据分组进行排序。您可以做的是,创建第三列作为“地点”。将其设置为隐藏。您可以使用“drawCallback”功能突出显示分组。请参考here

    【讨论】:

    • 我已经尝试过演示,但您按名称排序,我希望它按绿色组排序,再看一下我的演示。我正在考虑 sGroupingColumnSortDirection:绿色的。
    • 我的意思是这个videobam.com/Runyr,但既然你说这很难,我想我只能换一种方式或取消这个数据表。
    • 两年了,仍然没有解决方案 - 不能对组进行排序吗?如果可能的话,我还希望分组的内容(子项)可排序。知道如何使分组可排序吗? --篮子:钢丝筘 --把手:旋钮拉我想重新订购: --把手:旋钮拉杆 --篮子:钢丝簧
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多