Buttonsプラグインを使用するカスタムdataTablesの設定に問題があります。
カスタムデフォルトdom
レイアウトを設定できます。
//Vanilla dom (frtip...)
$.extend($.fn.dataTable.defaults, {
dom: 'frtip'
});
しかし、 dom
レイアウトに「B」文字を含める :
// Invoke Buttons plugin (Bfrtip...)
$.extend($.fn.dataTable.defaults, {
dom: 'Bfrtip'
});
...次にdataTablesを実行すると、このJavaScriptエラーが報告されます。
Uncaught TypeError:未定義のプロパティ「ボタン」を読み取ることができません
私は何が間違っているのですか?
私はこの質問を起草している間にそれを理解しました。ここで苦労して得た答えを共有する:
関連するJSアセット(jquery.dataTables.min.js、dataTables.buttons.min.jsなど)を含めるだけでは不十分です。 alsoは、デフォルトをbutton
オブジェクト要素で拡張することにより、Buttonsプラグインを呼び出す必要があります。
_// 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/ を参照してください。