我在设置使用Buttons插件的自定义dataTable时遇到问题.
我可以设置一个有效的custom default dom布局:
- //vanilla dom (frtip...)
- $.extend($.fn.dataTable.defaults,{
- dom: 'frtip'
- });
但如果我尝试include the “B” character in the dom
layout:
- // Invoke Buttons plugin (Bfrtip...)
- $.extend($.fn.dataTable.defaults,{
- dom: 'Bfrtip'
- });
…然后运行dataTables,报告此JavaScript错误:
Uncaught TypeError: Cannot read property ‘buttons’ of undefined
我究竟做错了什么?
请see an example of this at https://jsfiddle.net/jhfrench/at83rcoL/
解决方法
我在起草这个问题时想通了.在这里分享来之不易的答案:
仅包含相关的JS资产(jquery.dataTables.min.js,dataTables.buttons.min.js等)是不够的.您还必须通过使用按钮对象元素扩展默认值来调用Buttons插件:
- // Invoke Buttons plugin (Bfrtip...)
- $.extend($.fn.dataTable.defaults,{
- buttons: [ 'copy','csv','excel' ]
- });
或者你可以在dataTable()初始化时调用它:
- $("#table2").DataTable({
- buttons: [
- 'copy','excel','pdf'
- ]
- });
有关examples of both approaches working,请参见https://jsfiddle.net/jhfrench/at83rcoL/8/.