columnDefs.targets
自:DataTables 1.10
向一列或多列分配列定义。
描述
columnDefs
选项允许先定义一个列定义对象,然后将其分配给 DataTables 中的一列或多列,无需考虑列定义数组的顺序,或表中列的顺序。
此 columnDefs.targets
选项为 DataTables 提供必要的信息,指示列定义对象应应用于表中的哪些列。
它可以是
- 0 或正整数 - 从左到右计数的列索引
- 负整数 - 从右到左计数的列索引
- CSS 选择器 - 将使用与选择器匹配的列(2.0 起)。
- 字符串
_all
- 所有列(即分配一个默认值) - 以
:name
结尾的字符串 - 这将匹配使用columns.name
定义了名称的列(2.0 起)。 - 仅包含字母、数字、下划线和连字符的字符串 (
/^[a-z][\w-]*$/i
作为正则表达式) - 类名匹配。请注意,此选项是为了向后兼容 DataTables 1.x 而提供的。这意味着您不能仅仅将元素名称用作选择器,但这在标题中仅限于th
和td
。
此外,targets
可以是上述列表中的单个选项,或选项的数组(不同类型的选项在数组中可以混合,如果需要)。例如,targets: [ -1, -2 ]
将针对表中的最后一列和倒数第二列。
请注意,与所有其他列配置选项不同,这些列配置选项可以应用于 columns
和 columnDefs
,columnDefs.targets
选项只能用于 columnDefs
。
类型
此选项可以采用以下类型给出:
示例
禁用第一列的过滤
new DataTable('#myTable', {
columnDefs: [
{
targets: 0,
searchable: false
}
]
});
禁用第一列和第三列的排序
new DataTable('#myTable', {
columnDefs: [
{
targets: [0, 2],
orderable: false
}
]
});
禁用 class 为 'nosort' 的列的排序
new DataTable('#myTable', {
columnDefs: [
{
targets: 'nosort',
orderable: false
}
]
});
使用名称匹配一列
new DataTable('#myTable', {
columns: [
null,
null,
null,
{ name: 'action' }
],
columnDefs: [
{
targets: 'action:name',
defaultContent: '<button>Run</button>'
}
]
});
相关
以下选项直接相关,在应用程序开发中可能也有用。