我正在成功使用此代码
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',
显示查找输入框。这可行,但它会搜索每一列,但我只需搜索到两列。
所以我正在尝试有选择地关注此official guide to disable filtering,并添加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错误
TypeError:col未定义
删除columns
代码有效。
我做错了什么?
答案 0 :(得分:9)
我使用columnsDef
选项解决了。
以下代码禁用了对指定列的搜索。正是我想要的。
'columnDefs' : [ // see https://datatables.net/reference/option/columns.searchable
{
'searchable' : false,
'targets' : [0,1,4,5,6,7,8,9]
},
]
答案 1 :(得分:2)
您是否尝试过为其余4列传递null而不是仅指定前5列?所以:
'columns': [
{ 'searchable': false },
{ 'searchable': false },
null,
null,
{ 'searchable': false },
null,
null,
null,
null
]
我会将此作为评论发布,但我无法包含该示例。
答案 2 :(得分:0)
请记住,“搜索”的默认设置为true,因此要打开搜索某些列并为其他列关闭它,则需要执行以下两个选项中的一个或另一个:
1)保留默认设置,并关闭可搜索的特定列:
"columnDefs": [
{ "searchable": false, "targets": 0,3,5 }
]
或 2)关闭默认值,然后将其用于特定列
"searching": false,
"columnDefs": [{
"searchable": true, "targets": 1,2,4,6
}],
使用“ searchabe”:如果默认的“搜索”仍设置为true,则特定列的true不会关闭未提及的列。
答案 3 :(得分:0)
我使用SortHierarchy
bSearchable
false
希望您发现此代码有帮助。