columnDefs
自 DataTables 1.10 起
设置列定义初始化属性。
描述
与 columns
非常类似,这个参数允许您为表中的列分配特定选项,但这种情况中定义的列选项可以应用到一列或多列。此外,不必指定每一列,这与 columns
不同。
此参数是列定义对象的数组,其中可用选项与 columns
的选项完全匹配(见关联链接中的选项清单)。
除了列属性选项之外,columnDefs
要求在每个定义对象(columnDefs.targets
)中设置 targets
属性。此 targets
属性告诉 DataTables 定义应应用于哪一列或多列。它可以是
- 0 或一个正整数,列索引从左开始计数
- 一个负整数,列索引从右开始计数
- 一个 CSS 选择器,将使用与该选择器匹配的列(自 2.0 起)
- 字符串
_all
,所有列(即分配一个默认值) - 一个仅包含字母、数字、下划线和破折号的字符串(作为正则表达式的
/^[a-z][\w-]*$/i
),一个类名匹配。请注意,此选项是为了向后兼容 DataTables 1.x 而提供的。这意味着您不能将元素名称作为选择器使用,但无论如何,在页眉中这将限定为th
和td
。
此外,targets
既可以是从上述清单中选出的一个选项,也可以是一个选项数组(必要时可以在数组中混合不同类型)。例如,targets: [ -1, -2 ]
将以表中的最后一列和倒数第二列为目标。
冲突解决
由于 columnDefs
允许在不同的列定义对象中多次定义列(通常为了定义多列的不同方面),因此可能会出现冲突。即,对于同一列,一个单一属性可能会定义为不同的值。同样,当同时使用 columns
时也可能会出现这种情况。DataTables 使用以下规则来解决此类冲突
- 在
columns
中定义的属性将始终优先于在columnDefs
中定义的该属性的任意值。 columnDefs
数组中靠前的属性将优先于靠后的属性。
例如,考虑以下表格
var table = $('#myTable').DataTable( {
columnDefs: [
{ targets: [0, 1], visible: true},
{ targets: '_all', visible: false }
]
} );
表中将显示第一和第二列,而所有其他列都将隐藏。
类型
该选项可以采用以下类型
示例
禁用第一列上的筛选
new DataTable('#myTable', {
columnDefs: [
{
targets: 0,
searchable: false
}
]
});
相关
以下选项直接相关,并且对你的应用程序开发也可能有用。