繁体   English   中英

如何禁用特定 DataTable 列中的搜索?

[英]How to disable searching in specific DataTable columns?

我正在成功使用此代码

function refreshDataTable() {
        // The table is made sortable
        $('#order_proposal_table').DataTable({
            'destroy'           : true,     // see http://datatables.net/manual/tech-notes/3#destroy - 2nd example
            'paging'            : false,
            'scrollCollapse'    : true,
            'scrollY'           : '65vh',
            'fixedHeader'       : true,
            'dom'               : 'rt',
        }); 
    }

然后我尝试在 9 列中的 2 列中启用搜索。

所以我改变了

'dom'               : 'rt',

进入

'dom'               : 'frt',

显示查找输入框。 这有效,但它搜索每一列,但我只需要搜索 2 列。

所以我试图按照这个官方指南有选择地禁用过滤,并添加columns定义

结果代码:

function refreshDataTable() {
        // The table is made sortable
        $('#order_proposal_table').DataTable({
            'destroy'           : true,     // see http://datatables.net/manual/tech-notes/3#destroy - 2nd example
            'paging'            : false,
            'scrollCollapse'    : true,
            'scrollY'           : '65vh',
            'fixedHeader'       : true,
            'dom'               : 'frt',
            'columns'           : [         // see https://datatables.net/reference/option/columns.searchable
                { 'searchable': false },
                { 'searchable': false },
                null,   // product code 
                null,   // description 
                { 'searchable': false }
            ]
        }); 
    }

问题是我有一个来自数据表 javascript 的 javscript 错误

类型错误:col 未定义

删除columns代码有效。

我究竟做错了什么?

我解决了使用columnsDef选项。

以下代码禁用了对指定列的搜索。 正是我想要的。

'columnDefs'        : [         // see https://datatables.net/reference/option/columns.searchable
                { 
                    'searchable'    : false, 
                    'targets'       : [0,1,4,5,6,7,8,9] 
                },
            ]

您是否尝试过为其余 4 列传递 null 而不是仅指定前 5 列? 所以:

'columns': [
            { 'searchable': false },
            { 'searchable': false },
            null,   
            null,
            { 'searchable': false },
            null,   
            null,   
            null,   
            null
        ]

我会将此作为评论发布,但我无法包含该示例。

请记住,“搜索”的默认设置为 true,因此要打开对某些列的搜索并为其他列关闭它,您需要执行以下两个选项中的一个或另一个:

1) 保持默认设置,并关闭特定列的可搜索:

"columnDefs": [
    { "searchable": false, "targets": 0,3,5 }
]

或 2) 关闭默认值,然后针对特定列将其设置为一个

"searching": false,
"columnDefs": [{
    "searchable": true, "targets": 1,2,4,6
}],

如果默认的 'searching' 仍然设置为 true,则对特定列使用 "searchabe": true 不会关闭未提及的列。

我使用bSearchable false从搜索中排除了第二列

lang-js
"aoColumns": [
                null,
                { "bSearchable": false }
            ]

希望您发现此代码有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM