我们如何使用rowGrouping插件和jQuery DataTables对单个列进行字母和名称分组?
例如:对于值:
aaa=>1,aaa=>2,aaa=>3,aab=>1,aab=>2,aab=>3,aac=>1,aac=>2,...
应将(sGroupBy
)分组为A
,B
,然后使用名称aaa
,aab
,aac
。
答案 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以获取代码和演示。