按钮组选择器
按钮组选择器(多个按钮实例)。
请注意 - 该属性需要 DataTables 的按钮扩展。
描述
DataTables 的按钮扩展可以在单个 DataTable 上创建和附加多个 DataTable.Buttons
对象的实例,从而能够向最终用户显示不同的按钮集。例如,您可以在表格上方和下方显示相同的按钮,或者根据设计要求在表格周围的不同位置显示完全不同的按钮集。
由于这种多实例行为,buttons()
和 button()
方法提供从附加到 DataTable 的一个或多个按钮实例中选择按钮的选项。
选项
按钮组选择器可以以多种不同的形式给出,以确保 API 针对您的用例灵活
- 没有选择器 - 选择所有按钮实例
integer
- 实例索引选择器string
- 实例名称选择器(由buttons.name
设置)node
- 按钮组的div
元素(自 3.0.2 起)。array
- 包含上述任何选项组合的数组
无选择器
如果未给出按钮组选择器(即 undefined
),则将选择 DataTables API 上下文中表可用的所有按钮实例(即包含对多个表引用的 API 实例得到完全支持)。
禁用页面上的所有按钮
var allTables = DataTable.tables({api: true});
allTables.buttons().disable();
使用现有 DataTables 实例启用所有按钮
table.buttons().enable();
整数
按钮实例存储在附加到每个 DataTable 的数组中。因此,可以通过索引访问它们。
请注意,如果使用 buttons().destroy()
方法删除 Buttons 实例,则可以更改每个实例的索引 - 因此,通常更喜欢对实例名称使用字符串选择器。随着新的 Buttons 实例的创建,它们总会被推送到数组的末尾。
选择第一个按钮实例并禁用第二个按钮
var table = new DataTable('#myTable');
table.buttons(0, 1).disable();
字符串
每个按钮实例可以使用选项 buttons.name
进行命名,这允许单独选择它,而无需像使用整数选择器一样追踪实例索引。此外,实例名称不必唯一,因此单个名称可以指多个按钮实例。
除了能够使用字符串选择单个实例之外,还可以使用逗号分隔符选择多个实例(与在 CSS 或 jQuery 选择器中使用逗号选择多个元素的方式非常相似)。
带有两组按钮的表格;为主实例启用按钮索引 0
var table = new DataTable('#myTable', {
layout: {
topStart: {
buttons: {
name: 'main',
buttons: [
// ...
]
}
},
bottomStart: {
buttons: {
name: 'commands',
buttons: [
// ...
]
}
}
}
});
table.buttons('main', 0).enable();
使用逗号选择两个按钮实例
var table = new DataTable('#myTable', {
layout: {
topStart: {
buttons: {
name: 'main',
buttons: [
// ...
]
}
},
bottomStart: {
buttons: {
name: 'commands',
buttons: [
// ...
]
}
}
}
});
// Note the use of `null` in the second parameter to act as the button selector
// since `buttons()` with a single parameter will treat the first parameter as
// a button selector. See the `buttons()` documentation for full details.
table.buttons('export, commands', null).containers().appendTo('#panel');
节点
可以使用 div
元素,使用容器元素选择按钮实例组。如果你使用多个按钮集,并且需要基于其中包含的按钮的交互选择特定组,这将非常有用。
请注意,这必须是一个普通的 div
,而不是内部带有 div
的 jQuery 对象。如果你使用 jQuery 选择容器,请使用 $().get()
。
从 div
中选择按钮组
// Note `this` might be a button element itself
let groupEl = this.closest('div.dt-buttons');
table
.buttons(groupEl, null)
.containers()
.appendTo('#panel');
数组
作为数组,按钮组选择器可以选择一个或多个按钮实例。这允许你使用单个 API 调用对多个选定实例进行操作。如果使用此方法选择了同一实例多次,它将自动减少为单个选择。
与上面逗号字符串选择器的示例相同,但使用字符串数组
table
.buttons(['export', 'commands'], null)
.containers()
.appendTo('#panel');