自訂按鈕
按鈕本身擁有的表格操作模組非常有用,但只有透過提供自訂按鈕來解決您工作領域中獨有的問題,才能真正發揮按鈕的靈活性。
例如,考慮一個班級註冊中的學生表格。為了標記缺席的學生,可以使用一個按鈕以及選取擴充套件,首先選取缺席的學生,然後單擊一下即可更新資料庫。
另一個例子是一個會重新載入 DataTable 資料的按鈕,我們將在下面探討。
按鈕可以執行的選項是無窮無盡的;它只是執行您可以定義的 Javascript 函數!
必要參數
當您建立按鈕實例時,我們已經看過如何使用物件來定義每個按鈕。雖然您通常會擴充內建按鈕,但這不是必需的。
事實上,實際上沒有任何參數是必需的 - 但是,您幾乎總是希望為按鈕提供文字和動作。畢竟,如果沒有這兩者,按鈕的功能就相當有限!
buttons.buttons.text
- 定義按鈕標籤buttons.buttons.action
- 啟用時要採取的動作
在初始化期間定義
讓我們擴充上面給出的重新載入範例。對於 Ajax 資料來源的 DataTable(ajax
),我們可以使用ajax.reload()
方法從伺服器重新載入資料。一個呼叫此方法的按鈕為最終使用者提供了刷新表格資料的能力,可以像這樣建構
$('#myTable').DataTable( {
ajax: '/api/data'
buttons: [
{
text: 'Reload',
action: function ( e, dt, node, config ) {
dt.ajax.reload();
}
}
]
} );
請注意,buttons.buttons.action
函數會傳遞四個參數。這些參數描述了觸發動作的事件、託管按鈕的 DataTable 以及按鈕本身。完整的描述可以在參考文件中找到。
自訂按鈕類型
如上所述定義自訂按鈕對於單次使用的按鈕非常有用,但也可以定義一個可重複使用的按鈕,其擴充方式與預定義的按鈕完全相同。這可以透過將您的按鈕定義物件附加到 $.fn.dataTable.ext.buttons
物件來完成 - 使用的參數名稱是在初始化中將引用按鈕的名稱。
對於上面的重新載入按鈕,我們可以這樣使用
$.fn.dataTable.ext.buttons.reload = {
text: 'Reload',
action: function ( e, dt, node, config ) {
dt.ajax.reload();
}
};
$('#myTable').DataTable( {
ajax: '/api/data',
buttons: [
'reload'
]
} );
在這個範例中進一步探討了建立外掛程式按鈕的概念。
如果您建立了一個想要與 DataTables 社群分享的外掛程式按鈕,我們很樂意收到您的來信!