数据表:未捕获类型错误:无法读取未定义的属性“按钮”

DataTables: Uncaught TypeError: Cannot read property 'buttons' of undefined

本文关键字:未定义 属性 按钮 读取 类型 数据表 错误      更新时间:2023-09-26

我在设置使用按钮插件的自定义数据表时遇到问题。

我可以设置一个有效的自定义默认dom布局:

//vanilla dom (frtip...)
$.extend($.fn.dataTable.defaults, {
  dom: 'frtip'
});

但是,如果我尝试在dom布局中包含"B"字符:

// Invoke Buttons plugin (Bfrtip...)
$.extend($.fn.dataTable.defaults, {
  dom: 'Bfrtip'
});

。然后运行 dataTables,报告此 JavaScript 错误:

捕获的类型错误:无法读取未定义的属性"按钮"

我做错了什么?

请参阅 https://jsfiddle.net/jhfrench/at83rcoL/

我在起草这个问题时想通了。在这里分享来之不易的答案:

仅仅包含相关的JS资产(jquery.dataTables.min.js,dataTables.buttons.min.js等)是不够的。您还必须通过使用 button 对象元素扩展默认值来调用 Button 插件:

// Invoke Buttons plugin (Bfrtip...)
$.extend($.fn.dataTable.defaults, {
    buttons: [ 'copy', 'csv', 'excel' ]
});

或者你可以在dataTable()初始化时调用它:

$("#table2").DataTable({
  buttons: [
    'copy', 'excel', 'pdf'
  ]
});

有关这两种方法工作的示例,请参阅 https://jsfiddle.net/jhfrench/at83rcoL/8/。