2016-02-20 13 views
5

Buttonsプラグインを使用するカスタムデータテーブルを設定する際に問題があります。DataTables:Uncaught TypeError:未定義のプロパティ 'buttons'を読み取ることができません

私が働く 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' 
}); 

...その後のDataTableを実行し、このJavaScriptエラーが報告されています

Uncaught TypeError: Cannot read property 'buttons' of undefined

私は間違っていますか?

くださいsee an example of this at https://jsfiddle.net/jhfrench/at83rcoL/

答えて

10

この質問を起草しながら、私はそれを考え出しました。ここで難しい答えを共有:

関連するJSアセット(jquery.dataTables.min.js、dataTables.buttons.min.jsなど)だけでは不十分です。あなたもはどちらかbutton object要素にデフォルト値を拡張することにより、ボタンのプラグインを起動する必要があります。

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

+0

'dom'の組み込みオプションのほとんどはオフにすることができ、' dom'オプションは引き続きそれらに言及することができ、それは爆発しません。残念ながら、ボタンプラグインの場合、指定したDTインスタンスでボタンを使用していない場合は 'B'を省略するか、' B'が 'dom'にある場合は' buttons'をオプション。これは、すべてのインスタンスにボタンがあると仮定しているので、問題のある「B」を含む素晴らしいデフォルトの 'dom'値をサイトワイドに設定します。次回はこれを使って、デフォルトの 'buttons:false'や' buttons:[] 'を設定し、それが修正されているかどうかを調べるつもりです。 – jinglesthula

+0

実際には、私はちょうど上記のフィドルで本当にそれを試しました:)確かに、あなたが 'dom: 'Bfrtip''をセットし、' buttons:[] 'を指定すれば、フィドルの最初の例(w/oボタンの1つ)作品! ( 'buttons:false'は例外を投げる) – jinglesthula

関連する問題