row().invalidate()
使 DataTables 中選定列的資料失效。
說明
DataTables 會快取表格中每個儲存格的內容資訊,以提高表格操作(例如排序和搜尋)的效能。如果您修改了儲存格的內容(針對 DOM 資料來源表格)或陣列/物件的值(針對 Ajax/JS 資料來源表格),DataTables 將不會知道發生了此變更。此方法可用於告知 DataTables 重新從該列的資料來源讀取資訊(無論是來自 DOM 還是物件/陣列 - 任何原始資料來源)。
使資料失效提供了一種替代方法,可以替代使用 row().data()
和 cell().data()
來更新儲存格值。通常,首選 data
方法而不是失效方法,因為它們使用的程式碼較少,但是當表格的資料來源是可以使用其自身方法更新的外部物件,然後僅需呼叫 invalidate 方法告知 DataTables 資料已變更時,失效方法真正發揮作用。
類型
function row().invalidate( [ source ] )
- 說明
使選定列中的資訊失效
- 參數
名稱 類型 選用 1 source
是 - 預設值:auto 讀取新資料的資料來源。
預設情況下,DataTables 會自動從與原始讀取相同的來源讀取該列的新資料(即 DOM 來源或 JavaScript 來源),但是可以使用此參數來覆蓋該行為,並明確告知 DataTables 應使用哪個來源來讀取新資料。如果您正在使用 Ajax 加載資料,但使用 DOM 來修改儲存格的內容,則這可能會很有用。
此屬性可以採用以下值
auto
- 使用原始資料來源data
- 使用 JavaScript 資料結構dom
- 使用目前在 DOM 中保留的資料
- 返回
DataTables API 實例,結果集中包含選定列的參考
範例
使用 jQuery 修改儲存格的內容,然後使 DataTables 所保留的列失效
var table = new DataTable('#myTable');
var tr = $('#example tbody tr:eq(0)');
tr.find('td:eq(0)').html('Updated');
table
.row(tr)
.invalidate()
.draw();
使用資料物件實例,並在外部資料變更後使用失效來更新表格
var pupils = [new Pupil(), new Pupil(), new Pupil(), new Pupil()];
// Create table with data set
var table = new DataTable('#myTable', {
data: pupils
});
// Modify the data in the data set
pupils[0].name('Fred Green');
// Invalidate and redraw
table
.row(0)
.invalidate()
.draw();
相關
以下選項直接相關,並且在您的應用程式開發中也可能很有用。