web-dev-qa-db-ja.com

DataTables:Uncaught TypeError:未定義のプロパティ「ボタン」を読み取れません

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:未定義のプロパティ「ボタン」を読み取ることができません

私は何が間違っているのですか?

お願いします https://jsfiddle.net/jhfrench/at83rcoL/でこの例を参照してください

6
Jeromy French

私はこの質問を起草している間にそれを理解しました。ここで苦労して得た答えを共有する:

関連する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/ を参照してください。

16
Jeromy French