如何解决数据表rowGroup使用jQuery折叠/展开
所以我有一个功能完善的DataTable,它具有嵌套的行,并且是可折叠/可扩展的。我唯一的问题是,当我加载SharePoint页面时,DataTable处于打开状态,默认情况下,行被展开,并且我希望它们被折叠。我已经尝试过控制台日志记录,datatables论坛,但似乎无法弄清楚。
$(document).ready(function() {
var collapsedGroups = {};
var top = '';
var parent = '';
var table = $('#myTable').DataTable( {
"columns": [
{ "data": "Program",visible: false },{ "data": "Deliverable",{ "data": "To" },{ "data": "Date" },{ "data": "Approved" },{ "data": "Notes" }
],dom: 'Bfrtip',lengthMenu: [
[ 10,25,50,-1 ],[ '10 rows','25 rows','50 rows','Show all' ]
],buttons: [
'pageLength','excel','pdf','print'
],order: [[0,'asc'],[1,'asc'] ],rowGroup: {
dataSrc: [
'Program','Deliverable'
],startRender: function (rows,group,level){
var all;
if (level === 0) {
top = group;
all = group;
} else if (level === 1) {
parent = top + group;
all = parent;
// if parent collapsed,nothing to do
if (!!collapsedGroups[top]) {
return;
}
} else {
// if parent collapsed,nothing to do
if (!!collapsedGroups[parent]) {
return;
}
all = top + parent + group;
}
var collapsed = !!collapsedGroups[all];
console.log(collapsedGroups);
rows.nodes().each(function(r) {
r.style.display = collapsed ? 'none' : '';
});
//Add category name to the <tr>.
return $('<tr/>')
.append('<td colspan="8">' + group + ' (' + rows.count() + ')</td>')
.attr('data-name',all)
.toggleClass('collapsed',collapsed);
console.log('collapsed:',collapsed);
}
}
} );
loadData();
$('#myTable tbody').on('click','tr.dtrg-start',function () {
var name = $(this).data('name');
collapsedGroups[name] = !collapsedGroups[name];
table.draw(false);
});
} );
解决方法
!!collapsedGroups
太多!在var =折叠组中,必须经过删除!运算符
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。