JYU Blog

HTML-DataTables系列筆記-基礎語法使用
2020-06-01 13:56:00

語法結構

結構上有分為以下區塊

  1. 屬性區塊
  2. ajax區塊
  3. 資料欄位區塊(columns)
  4. 語言區塊(language)
  5. 欄位元素定義區塊(columnDefs)
  6. 列元素區塊(rowCallback)

(一) 呼叫初始化語法

JQuery初始化語法

 $(datatable_id).DataTable()

datatable_id對應為Table元件ID,以下面Table元件為例

<table id="test_table"></table>

在JQuery初始化語法呈現如下

$("#test_table").DataTable()

完整語法結構

$(datatable_id).DataTable(
    // 屬性區塊,
    // ajax區塊,
    // 資料欄位區塊(columns),
    // 語言區塊(language),
    // 欄位元素定義區塊(columnDefs),
    // 列元素區塊(rowCallback)
)

(二) 屬性區塊

在Datatables歸類在Options內,可參考 https://datatables.net/reference/option/

屬性區塊在語法結構範例如下


(三) ajax區塊

可參考關於Datatables ajax: https://datatables.net/reference/option/ajax

標準語法結構如下:

基本參數:


(四) 資料欄位區塊(columns)

欄位宣告標準語法結構如下:

在Datatables中有幾個欄位就會有幾個”{data: ‘欄位名稱’}”,此用途是讓Datatables知道Server端回傳的資料中,哪個位置資料是給予哪一個欄位放置,Server端回傳的資料型態JSON格式,每一個位key值就是對應欄位名稱,value值就是該欄位要放置的資料。

假設有一筆Server端回傳的JSON資料為以下:

[
    {'col1': 'val1' , 'col2': 'val2'},
    {'col1': 'val3' , 'col2': 'val4'},
]

對應資料欄位區塊語法為以下:

columns: [
    { data: 'col1' },
    { data: 'col2' },
]

在Html Table元件語法結構如下:

<table class="display table-bordered  table table-responsive  table-hover">
    <thead>
        <th class="text-center">col1</th>
        <th class="text-center">col2</th>
    </thead>
</table>

最後Table呈現效果如下:


從這個例子中,你可以發現到資料欄位區塊(columns)內,不管有建立幾個欄位宣告,最後跟有幾筆(列)資料是無關的,它只跟有幾個欄位有關係,如果你建立的欄位宣告有缺少,或者不符合回傳的資料對應欄位key,會出現錯誤,需要注意這一點。


(五) 語言區塊(language)

此區塊針對DataTables內各區塊所顯示資訊語言,可以自訂要呈現內容,例如當資料還在載入初始化時,可以自訂當前狀態敘述內容,或者分頁功能內按鈕名稱等等。


(六) 欄位元素定義區塊(columnDefs)

可參考關於Datatables option — columnDefs: https://datatables.net/reference/option/columnDefs

標準語法結構如下:

基本參數:

例如:指定第一個欄位和第二個欄位內的值都套用置中對齊 { targets: [0, 1], className: 'text-center' }

例如:將第三個欄位顯示的是時間,想要改變時間顯示格式為YYYY-MM-DD,時間格式套件設定採用momentjs,可參考 https://momentjs.com/

例如:要為第一個欄位加入css樣式,控制欄位寬度百分比


(七) 列元素區塊(rowCallback)

可參考關於Datatables rowCallback: https://datatables.net/reference/option/rowCallback

標準語法結構如下:

有關於function參數說明,請參考上方連結內說明。 最常使用的參數為以下:

假設要為一整列套用一個背景色CSS樣式,使用BootStrap顏色類別名,在該列添加一個CSS類別為BootStrap顏色類別名’warning’,可以用以下方式:


(八) 完整範例格式

Html

JQuery:


相關參考