我正在使用Datatables创建一个grouped by数据网格。我能够使用我的第一列对我的表进行分组。
我想要完成获取每个分组行上的计数并写出分组行上的计数,我该怎么做呢?
如果您看到下面的链接,则它们具有带阴影的分组行。我希望计数出现在分组文本的文本之后。
http://www.datatables.net/examples/advanced_init/row_grouping.html
谢谢。
发布于 2019-08-08 07:52:55
这可以通过在drawCallBack函数中添加一个for循环来实现。对于drawCallBack函数,请参考http://www.datatables.net/examples/advanced_init/row_grouping.html。请注意,我使用的是遗留的dataTable函数,即fnDrawCallBack用最新的等价物替换它。
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]
);
}
}发布于 2018-12-10 02:04:28
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 + ")"
});
} 发布于 2019-05-01 17:56:21
您可以通过rowGroup属性执行此操作:
rowGroup: {dataSrc: 'Your column name or index',
startRender: function (rows, group) {
return group + ' (' + rows.count() + ' rows)';
}
}https://stackoverflow.com/questions/26103362
复制相似问题