在数据表中将单个列与字母和名称分组?

时间:2015-09-21 10:55:27

标签: jquery datatables

我们如何使用rowGrouping插件和jQuery DataTables对单个列进行字母和名称分组?

例如:对于值:

aaa=>1,aaa=>2,aaa=>3,aab=>1,aab=>2,aab=>3,aac=>1,aac=>2,...

应将(sGroupBy)分组为AB,然后使用名称aaaaabaac

1 个答案:

答案 0 :(得分:2)

  

<强>解

不再开发插件rowGrouping,我不建议使用它。使用替代方法执行行分组,如Row grouping example

所示

例如,使用下面的代码按照包含名称的列排序时按行首字母分组。

var table = $('#example').DataTable({
    "drawCallback": function (settings){
        var api = this.api();

        // Zero-based index of the column containing names
        var col_name = 0;

        // If ordered by column containing names
        if (api.order()[0][0] === col_name) {
            var rows = api.rows({ page: 'current' }).nodes();
            var group_last = null;

            api.column(col_name, { page: 'current' }).data().each(function (name, index){
                var group = name.substr(0, 1);

                if (group_last !== group) {
                    $(rows).eq(index).before(
                        '<tr class="group"><td colspan="6">' + group + '</td></tr>'
                    );

                    group_last = group;
                }
            });
        }
    }
});
  

<强>样本

请参阅this jsFiddle以获取代码和演示。