DataTables 套件簡介
作者/龔柏元
前言
Table是一種網頁上常見的資料表示方式,以往在WebForm架構下,可直接透過內建的GridView控制元件,便可輕易達到資料的呈現與介面的操作;然而在MVC架構下,由於Control與View分離,Control只負責邏輯處理與資料彙整,View只負責外觀的呈現,介面與使用者的互動操作功能通常需要額外撰寫javascript才能達成。
本文所介紹的DataTables套件,便是專門針對table外觀介面與功能操作所設計的第三方套件,可大幅減少自行撰寫javascript互動操作功能的困難,有效降低網頁前端開發的複雜度。
DataTables簡介
DataTables套件是一種JQuery外掛套件,特別針對table此種資料的呈現方式,內部已實作了各種相關操作的功能,並提供具有彈性的客製化選項,開發人員只需要下載並引用相關函式庫,即可輕鬆實作出功能豐富的table介面。
《圖一》
功能介紹
DataTables套件提供相當豐富的功能性,以下範例簡單介紹幾種常用的options、events、API使用方式。
一、Options : 提供在初始化時可預先設定的功能選項
ordering - 設定排序功能
《圖二》
paging - 設定分頁功能
《圖三》
searching - 設定資料搜尋功能
《圖四》
pageLength - 設定一頁所顯示的資料數
《圖五》
select - 設定資料列的選取功能
《圖六》
二、Events : 提供在網頁元素綁定可觸發事件的功能選項
init - 當datatable初始化結束後觸發事件
《圖七》
order - 當datatable排序發生後觸發事件
《圖八》
page - 當datatable換頁發生後觸發事件
《圖九》
search - 當datatable搜尋發生後觸發事件
《圖十》
select - 當datatable內容被選取後觸發事件
《圖十一》
三、API : 提供API呼叫可進行更複雜的操作設定
ajax.reload( ) - 操作datatable透過ajax重新載入資料
《圖十二》
order( ) - 操作datatable進行排序
《圖十三》
page( ) - 操作datatable進行換頁
《圖十四》
search( ) - 操作datatable進行搜尋
《圖十五》
row( ).select( ) - 操作datatable進行列選取
《圖十六》
實作範例
以下為使用MVC架構實作引用DataTables套件的簡單範例
首先將下載套件中的css與js檔案引用進 _Layout.cshtml
《圖十七》
《圖十八》
接著在View建立一個簡單的table,id命名為GroupTable
《圖十九》
js檔案裡使用JQuery抓取前端View的GroupTable,並直接呼叫DataTables套件提供的API,針對table作初始化功能設定,最後經由ajax非同步傳輸的方式向Controller Action取得來源資料
《圖二十》
Controller Action裡只需將後端DB彙整的資料,包裝成JSON物件後回傳
《圖二十一》
下圖即為程式執行的結果
《圖二十二》
結論
DataTables套件簡單易用好上手,其內部已實作了相當豐富的常用功能,也提供許多彈性的客製化選項,並基於JQuery外掛的優勢,只需將套件下載後引用至程式中即可使用,非常值得推薦給有相關需求的網頁前端工程師。
參考文獻
1.
DataTables download
2.
DataTables install
3.
DataTables reference
4.
jQuery套件測試 – DataTables
5.
Datatables套件與WebAPI搭配