首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对数据对象中的行分组进行排序

对数据对象中的行分组进行排序
EN

Stack Overflow用户
提问于 2014-12-24 11:55:38
回答 1查看 2.9K关注 0票数 1

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

这是小提琴演示

正如您所看到的,这是一个普通的表,但是对于行分组,绿色的是行组,但是没有办法像我可以用Name和Score列那样对它们进行排序,唯一的方法是在代码中将它们更改为"asc""desc"

代码语言:javascript
复制
$(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
    });
});

这样可以工作,但用户没有选择或排序分组的方法。

我想做一个选择下拉,所以它将排序分组相应的用户选择。

代码语言:javascript
复制
<label>
Sort place by:
<select>
  <option value="place">Ascending</option>
  <option value="place">Descending</option>
</select>
</label>

那么,是否可以使用这个select下拉列表对分组进行排序?

EN

回答 1

Stack Overflow用户

发布于 2014-12-24 12:39:34

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

代码语言:javascript
复制
<select id="selectSort">
    <option value="Ascending">Ascending</option>
    <option value="Descending">Descending</option>
</select>

在jquery document.ready部分中包括以下代码。

代码语言:javascript
复制
$("#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/

更新:在您的分组方法中,很难根据分组进行排序。您可以做的是,创建第三列为"Place“。把它藏起来。您可以使用"drawCallback“函数突出显示分组。请参阅这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27636549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档