角度数据表中的多个分组

时间:2017-01-27 00:57:21

标签: angularjs datatable datatables

我正在尝试在我的数据表中执行多个分组,由于此示例,我可以设法按列分组。

https://datatables.net/examples/advanced_init/row_grouping.html

是否有人知道任何适用于angular和angularDatables(https://l-lin.github.io/angular-datatables/#/welcome)的插件,可以将数据分组到多个列?

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果有人遇到同样的问题,我对https://datatables.net/examples/advanced_init/row_grouping.html中提供的代码所做的唯一一件事就是为我想要分组的每一列使用相同的代码。

api.column(0 { page: 'current' })
.data()
                            .each(function(group, i) {
                                if (last !== group) {
                                    $(rows)
                                        .eq(i)
                                        .before(
                                            '<tr class="group"><td colspan="5">' + group + '</td></tr>'
                                        );
                                    last = group;
                                }
                            });
api.column(1 { page: 'current' })
.data()
                            .each(function(group, i) {
                                if (last !== group) {
                                    $(rows)
                                        .eq(i)
                                        .before(
                                            '<tr class="group"><td colspan="5">' + group + '</td></tr>'
                                        );
                                    last = group;
                                }
                            });

答案 1 :(得分:0)

基于@Martha的答案,它也以这种方式适用于角度5:

    var groupColumn = 1;

    this.dtOptions = {
     // pagingType: 'full_numbers',
      pageLength: 10,
      responsive: true,
      language: { search: "" },
      order:[1,'desc'],
      columnDefs: [
                      { type: 'date-uk', targets: 1}  // specifying date format
                  ],
      drawCallback: function ( settings ) {
            var api = this.api();
            var rows = api.rows( {page:'current'} ).nodes();
            var last=null; 
            api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) {
                if ( last !== group ) {
                    $(rows).eq( i ).before(
                        '<tr style="background-color:#dedede" class="group"><th colspan="5">'+group+'</th></tr>'
                    ); 
                    last = group;
                }
            });
        }
    };