Javascript 如何在Datatable的特定列处于隐藏状态时禁用列切换?

Javascript 如何在Datatable的特定列处于隐藏状态时禁用列切换?,javascript,jquery,datatable,Javascript,Jquery,Datatable,我正在为我的项目使用Datatable插件。我已经启用了colvis功能来帮助表导出。现在,我想使用以下脚本为用户隐藏一些列: columnDefs : [ { targets: 1, visible: (department == '6')||(department == '0'), "searchable": false,className:'none' } ] 它工作得很好,就像列是隐藏的,它也不可搜索。但由于我启用了colvis,列名在列表中是可见的,当用户选择hidden

我正在为我的项目使用Datatable插件。我已经启用了colvis功能来帮助表导出。现在,我想使用以下脚本为用户隐藏一些列:

 columnDefs : [
  { targets: 1, visible: (department == '6')||(department == '0'),
   "searchable": false,className:'none' }
]
它工作得很好,就像列是隐藏的,它也不可搜索。但由于我启用了colvis,列名在列表中是可见的,当用户选择hidden column时,它将显示出来。有谁能建议我如何禁用列切换吗

还尝试指定列以排除colvis,但没有使用

columnDefs : [
  { targets: 1, visible: (department == '6')||(department == '0'),
   "searchable": false,className:'never', responsive: false ,colVis: {
    exclude: [ 1 ]
}},

],
下面是我的完整数据表脚本

 $('#page_effect').fadeIn(2000);
                var table = $('#testTable').DataTable({
                    mark: true,
                    responsive: true,
                   "dom": 'flit',
                    columns: [
                        {className: "group1"},
                        {className: "group2"},
                        {className: "group1"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                        {className: "group2"},
                    ],
                    dom: 'Bfrtip',
                    buttons: [{
                            extend: 'collection',
                            text: "More options",
                            buttons: [
                                'pageLength',
                                {
                                    extend: 'copyHtml5',
                                    exportOptions: {
                                        columns:  ':visible'
                                    }
                                },
                                {
                                    extend: 'excelHtml5',
                                    title: 'Book',
                                    exportOptions: {
                                        columns: ':visible'
                                    }
                                },
                                {
                                    extend: 'pdfHtml5',
                                    title: 'Book',
                                    exportOptions: {
                                        columns: ':visible'
                                    }
                                },
                                {
                                    extend: 'print',
                                    title: 'Book',
                                    exportOptions: {
                                        columns: ':visible'
                                    }
                                },
                                {
                                    extend: 'excel',
                                    title: 'Book',
                                    text: 'Export selected',
                                    exportOptions: {
                                        columns: ':visible',
                                        modifier: {
                                            selected: true
                                        }
                                    }

                                },
                                {
                                    extend: 'columnToggle',
                                    text: 'Toggle Group1',
                                    columns: '.group1'
                                },
                                {
                                    extend: 'columnToggle',
                                    text: 'Toggle Group2',
                                    columns: '.group2'
                                },

                                'colvis',

                            ],
                        }],
                     dom: 'Bfrtip',
                      lengthMenu: [
            [ 10, 25, 50, 250 ],
            [ '10 rows', '25 rows', '50 rows', '250 rows' ]
        ],
        columnDefs : [
  { targets: 1, hidden: (department == '6')||(department == '0'),
   "searchable": false,className:'never', responsive: false ,
   buttons:[
                {
            extend: 'colvis',
            columns: ':gt(0)'
        } ],
},

],
                    scrollY: 300,
                    scrollX: true,
                    scrollCollapse: true,
                    paging: true,
                    fixedColumns: true,
                    select: true,          

                });

您需要指定colvis要切换哪些列

退房

因为您知道要隐藏id为1的列,所以需要向DataTable添加额外的选项

colVis: {
    exclude: [ 1 ]
} 编辑:

试着替换

'colvis',

和删除

buttons:[{
    extend: 'colvis',
    columns: ':gt(0)'
}],

在代码的底部,您需要指定colvis要切换哪些列

退房

因为您知道要隐藏id为1的列,所以需要向DataTable添加额外的选项

colVis: {
    exclude: [ 1 ]
} 编辑:

试着替换

'colvis',

和删除

buttons:[{
    extend: 'colvis',
    columns: ':gt(0)'
}],

从代码底部开始

谢谢@JiFus。如上所述,我已经试过了。但是没用。谢谢你,吉福斯!!:D@Jcc.Sanabria很高兴3年后它帮助了你……:)谢谢@JiFus。如上所述,我已经试过了。但是没用。谢谢你,吉福斯!!:D@Jcc.Sanabria很高兴3年后它帮助了你……:)