自定义按钮
按钮拥有可处理表的模块,用处非凡,但只有提供特定于您正在处理的领域的自定义按钮,才能释放按钮真正的灵活性。
例如,考虑一张课堂注册中学生的表格。只需一个按钮和 Select 扩展,就可以标记缺勤学生,先选择未到校学生,然后一键更新数据库。
另一个示例是重新加载数据表的按钮 - 我们将在下面探讨。
按钮可以执行的操作没有尽头;它只需执行您能够定义的 Javascript 函数!
所需参数
构建 Buttons 实例时,我们已经看到如何使用对象定义每个按钮。虽然您通常会扩展内置按钮,但这并不是必需的。
事实上,没有参数是必需的 - 然而,您几乎总是希望为按钮提供文本和操作。毕竟,没有这两项,按钮的功能就会非常有限!
buttons.buttons.text
- 定义按钮标签buttons.buttons.action
- 激活后执行的操作
在初始化期间定义
让我们扩展上面给出的重新加载示例。使用 Ajax 数据源的数据表(ajax
),我们可以使用 ajax.reload()
方法从服务器重新加载数据。调用此方法的按钮为最终用户提供了刷新表数据的功能,可以按如下方式构建
$('#myTable').DataTable( {
ajax: '/api/data'
buttons: [
{
text: 'Reload',
action: function ( e, dt, node, config ) {
dt.ajax.reload();
}
}
]
} );
请注意,buttons.buttons.action
函数会传入四个参数。这些参数描述触发操作的事件、承载按钮的数据表和按钮本身。有关完整描述,请参阅参考文档。
自定义按钮类型
如上所示,定义自定义按钮对于单一的、一次性的按钮非常有用,但也可以定义一个可重用的按钮,它的可扩展性与预定义按钮完全相同。这可以通过将按钮定义对象附加到$.fn.dataTable.ext.buttons
对象来完成,所使用的参数名称是初始化中引用按钮的名称。
对于上面的重新加载按钮,我们可能使用
$.fn.dataTable.ext.buttons.reload = {
text: 'Reload',
action: function ( e, dt, node, config ) {
dt.ajax.reload();
}
};
$('#myTable').DataTable( {
ajax: '/api/data',
buttons: [
'reload'
]
} );
创建插件按钮的概念在这个示例中进一步探讨。
如果您创建了一个想要与 DataTables 社区分享的插件按钮,我们将很高兴收到您的来信!