外掛程式
此擴充功能現已停用,並已由 Buttons 和 Select 擴充功能取代。文件僅保留供舊版參考。新專案應優先使用 Buttons 和 Select,而不是 TableTools。
TableTools 的外掛程式採用新的按鈕定義形式。這些按鈕類型可以包含在您的 Javascript 中,然後使用選擇要使用哪些按鈕的正常初始化方法 (aButtons) 由 TableTools 使用。
如果您自己建立了任何按鈕類型並想分享它們,請聯繫我並發送您的外掛程式,以便我可以將它放在此頁面上!
外掛程式按鈕
copy_to_div 顯示詳細資訊 |
此按鈕會將表格內容(格式化的文字,而不是 HTML)複製到具有給定 ID 的元素(使用 'sDiv' 參數)。 |
作者 | Allan Jardine |
程式碼 |
$.fn.dataTable.TableTools.buttons.copy_to_div = $.extend( true, {}, $.fn.dataTable.TableTools.buttonBase, { "sNewLine": ">br<", "sButtonText": "複製到元素", "target": "", "fnClick": function( button, conf ) { $(conf.target).html( this.fnGetTableData(conf) ); } } ); /* 使用範例 */ $(document).ready( function () { $('#example').dataTable( { dom': 'T<"clear">lfrtip', tableTools': { "aButtons": [ { "sExtends": "copy_to_div", "sButtonText": "複製到 div", "target": "#copy", } ] } } ); } );
|
download 顯示詳細資訊 |
此按鈕將建立一個表單,當按鈕啟動時,該表單會提交到伺服器。它可以設定為使用 GET 或 POST(使用 `sType` 選項),且請求 URL 由 `sUrl` 選項定義。這非常適合向伺服器發出請求,以觸發下載,例如使用伺服器端處理建立 PDF。 如果 DataTables 中啟用 Ajax 資料,則此外掛程式會提交與 DataTables 用於其自身 Ajax 請求相同的參數(例如伺服器端處理參數)。提交的資料可在 HTTP 變數 `json` 中取得,並且是資料的 JSON 編碼表示。如果需要,可以指定 `fnData` 選項以將其他參數新增至資料物件。 請注意,此外掛程式需要 DataTables 1.10 或更新版本。 |
作者 | Allan Jardine |
程式碼 |
$.fn.dataTable.TableTools.buttons.download = $.extend( true, {}, $.fn.dataTable.TableTools.buttonBase, { "sButtonText": "下載", "sUrl": "", "sType": "POST", "fnData": false, "fnClick": function( button, config ) { var dt = new $.fn.dataTable.Api( this.s.dt ); var data = dt.ajax.params() || {}; // 可選的靜態額外參數 // data.customParameter = ...; if ( config.fnData ) { config.fnData( data ); } var iframe = $('<iframe/>', { id: "RemotingIFrame" }).css( { border: 'none', width: 0, height: 0 } ) .appendTo( 'body' ); var contentWindow = iframe[0].contentWindow; contentWindow.document.open(); contentWindow.document.close(); var form = contentWindow.document.createElement( 'form' ); form.setAttribute( 'method', config.sType ); form.setAttribute( 'action', config.sUrl ); var input = contentWindow.document.createElement( 'input' ); input.name = 'json'; input.value = JSON.stringify( data ); form.appendChild( input ); contentWindow.document.body.appendChild( form ); form.submit(); } } ); // 初始化範例 $(document).ready( function () { $('#example').dataTable( { "sDom": 'T<"clear">lfrtip', "oTableTools": { "aButtons": [ { "sExtends": "download", "sButtonText": "下載 XLS", "sUrl": "/generate_xls.php" } ] } } ); } );
|