首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datatables:使用行分组,如何获得每个分组行的计数?

Datatables:使用行分组,如何获得每个分组行的计数?
EN

Stack Overflow用户
提问于 2014-09-29 23:23:31
回答 4查看 5K关注 0票数 6

我正在使用Datatables创建一个grouped by数据网格。我能够使用我的第一列对我的表进行分组。

我想要完成获取每个分组行上的计数并写出分组行上的计数,我该怎么做呢?

如果您看到下面的链接,则它们具有带阴影的分组行。我希望计数出现在分组文本的文本之后。

http://www.datatables.net/examples/advanced_init/row_grouping.html

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2019-08-08 07:52:55

这可以通过在drawCallBack函数中添加一个for循环来实现。对于drawCallBack函数,请参考http://www.datatables.net/examples/advanced_init/row_grouping.html。请注意,我使用的是遗留的dataTable函数,即fnDrawCallBack用最新的等价物替换它。

代码语言:javascript
复制
            fnDrawCallback: function(settings) {
            var api = this.api();
            var rows = api.rows({ page: "current" }).nodes();
            var last = null;
            var storedIndexArray = [];
            api.column(0, { page: "current" })
                .data()
                .each((group, i) => {
                    if (last !== group) {
                        storedIndexArray.push(i);
                        $(rows)
                            .eq(i)
                            .before(
                                '<tr class="group"><td colspan="4">' +
                                    group +
                                    "<span class='group-count'></span></td></tr>"
                            );
                        last = group;
                    }
                });
            storedIndexArray.push(
                api.column(0, { page: "current" }).data().length
            );
            for (let i = 0; i < storedIndexArray.length - 1; i++) {
                let element = $(".group-count")[i];
                $(element).text(
                    storedIndexArray[i + 1] - storedIndexArray[i]
                );
            }
        }
票数 3
EN

Stack Overflow用户

发布于 2018-12-10 02:04:28

代码语言:javascript
复制
function CountRows(){
    debugger;
    var abc = $('.abc');
    var arr = [];

    $( abc ).each(function( index, value ) {
        var dynamicId = (this.id.split('_')[1]); 
        var groupRowCount = $('.group_'+dynamicId).length;
        this.textContent = this.textContent + " (" + groupRowCount + ")"
    });

}  
票数 2
EN

Stack Overflow用户

发布于 2019-05-01 17:56:21

您可以通过rowGroup属性执行此操作:

代码语言:javascript
复制
    rowGroup: {dataSrc: 'Your column name or index',
        startRender: function (rows, group) {
            return group + ' (' + rows.count() + ' rows)';
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26103362

复制
相关文章

相似问题

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