Javascript 对数据表中的行分组进行排序

Javascript 对数据表中的行分组进行排序,javascript,jquery,sorting,datatables,grouping,Javascript,Jquery,Sorting,Datatables,Grouping,我正在使用数据库和jquery行分组 这是你的电话号码 正如您所看到的,这是一个普通的表,但是有行分组,绿色的是行分组,但是没有办法像单击Name and Score列那样对它们进行排序,唯一的排序方法是在代码中将sGroupingColumnSortDirection:更改为asc或desc $(document).ready(function () { $('#main').dataTable({ "bLengthChange": false, "bP

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

这是你的电话号码

正如您所看到的,这是一个普通的表,但是有行分组,绿色的是行分组,但是没有办法像单击Name and Score列那样对它们进行排序,唯一的排序方法是在代码中将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>

因此,是否可以使用此选择下拉列表对分组进行排序?

首先,为下拉列表提供一个id,并为选项提供适当的值。然后,在下拉列表的onchange事件中,需要调用datatable fnSort函数

<select id="selectSort">
    <option value="Ascending">Ascending</option>
    <option value="Descending">Descending</option>
</select>
更新了小提琴:

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

我已经试过这个演示,但是你按名称排序,我希望它按组排序绿色的,再看看我的演示。。我正在谈论sGroupingColumnSortDirection:绿色的。我的意思是这样的,但既然你说这很难,我想我只能换一种方式,或者取消这个数据表。两年了,仍然没有解决方案——是否不可能对组进行排序?如果可能的话,我还希望对分组的子级内容进行排序。你知道如何使分组可排序吗-篮子:钢丝簧片-手柄:旋钮拉力我希望重新排序:-手柄:旋钮拉力-篮子:钢丝簧片
$("#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] ] );  


});