類型偵測外掛程式開發
排序外掛程式對於排序任意資料類型非常有用,但是要真正發揮作用,它們需要一個配套的類型偵測外掛程式,該程式會自動掃描欄位的資料,並確定排序外掛程式是否可以排序該欄位中的資料。排序外掛程式可以在沒有類型偵測外掛程式的情況下使用,通過columns.type
選項,但如果它可以自動執行,其效用將大大提高!
類型偵測外掛程式會附加到 DataTable.ext.type.detect
陣列,並執行簡單的操作:給定的資料是否符合該類型的要求。如果符合,則應傳回類型名稱 (即字串),否則傳回 null
。
DataTable.ext.type.detect
是一個陣列,其順序很重要。DataTables 將從索引 0 開始並迭代陣列,直到找到資料的匹配項。因此,若要讓您的外掛程式在 DataTables 預設類型偵測方法之前執行,請使用 unshift()
將您的函數新增到陣列的開頭。
請考慮以下程式碼
DataTable.ext.type.detect.unshift( function ( data ) {
if ( typeof data !== 'string' ) {
return null;
}
var units = data.replace( /[\d\.]/g, '' ).toLowerCase();
if ( units !== '' && units !== 'b' && units !== 'kb' && units !== 'mb' && units !== 'gb' ) {
return null;
}
return isNaN( parseFloat( data ) ) ?
null :
'file-size';
} );
這基本上是一個驗證函式 - 資料是否為給定類型。在此範例中,我們正在檢查欄位是否包含檔案大小排序外掛程式的檔案大小資料。第一個檢查是確保我們要檢查的是字串,第二個檢查是確保它有單位,最後一個檢查是檢查資料是否包含有效數字。
當所有三個檢查都通過時,將傳回 file-size
,以便 DataTables 知道此資料點對 file-size
資料類型有效。
現有外掛程式
您可能會發現,其他 DataTables 使用者已經建立符合您要求的外掛程式。外掛程式會發佈在本網站,也可在 DataTables CDN 上取得。
發佈您的外掛程式
如果您為 DataTables 建立類型偵測外掛程式,請告訴我們!。其他人可能會從您的外掛程式中受益,我(以及整個社群)將非常感謝您的貢獻。