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