使用 jQuery dataTables - 2 四種資料來源
四種資料來源
對於 dataTables 來說,支援四種表格資料來源。
最為基本的就是來源於網頁,網頁被瀏覽器解析為 DOM 物件,在 dataTables 中稱為 DOM 來源。
$(document).ready(
function
() {
$(
'#example'
).dataTable();
} );
|
第二種資料來源為陣列, JavaScript 中的陣列,通過在初始化物件中傳遞一個名為 aaData 的陣列,同樣可以提供表格資料,字首 aa 說明這是一個陣列的陣列,外層的陣列表示表格的行,每一行同樣是一個陣列。
$(document).ready(
function
() {
$(
'#demo'
).html(
'<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>'
);
$(
'#example'
).dataTable( {
"aaData"
: [
/* Reduced data set */
[
"Trident"
,
"Internet Explorer 4.0"
,
"Win 95+"
, 4,
"X"
],
[
"Trident"
,
"Internet Explorer 5.0"
,
"Win 95+"
, 5,
"C"
],
[
"Trident"
,
"Internet Explorer 5.5"
,
"Win 95+"
, 5.5,
"A"
],
[
"Trident"
,
"Internet Explorer 6.0"
,
"Win 98+"
, 6,
"A"
],
[
"Trident"
,
"Internet Explorer 7.0"
,
"Win XP SP2+"
, 7,
"A"
],
[
"Gecko"
,
"Firefox 1.5"
,
"Win 98+ / OSX.2+"
, 1.8,
"A"
],
[
"Gecko"
,
"Firefox 2"
,
"Win 98+ / OSX.2+"
, 1.8,
"A"
],
[
"Gecko"
,
"Firefox 3"
,
"Win 2k+ / OSX.3+"
, 1.9,
"A"
],
[
"Webkit"
,
"Safari 1.2"
,
"OSX.3"
, 125.5,
"A"
],
[
"Webkit"
,
"Safari 1.3"
,
"OSX.3"
, 312.8,
"A"
],
[
"Webkit"
,
"Safari 2.0"
,
"OSX.4+"
, 419.3,
"A"
],
[
"Webkit"
,
"Safari 3.0"
,
"OSX.4+"
, 522.1,
"A"
]
],
"aoColumns"
: [
{
"sTitle"
:
"Engine"
},
{
"sTitle"
:
"Browser"
},
{
"sTitle"
:
"Platform"
},
{
"sTitle"
:
"Version"
,
"sClass"
:
"center"
},
{
"sTitle"
:
"Grade"
,
"sClass"
:
"center"
,
"fnRender"
:
function
(obj) {
var
sReturn = obj.aData[ obj.iDataColumn ];
if
( sReturn ==
"A"
) {
sReturn =
"<b>A</b>"
;
}
return
sReturn;
}
}
]
} );
} );
|
aoColumns 引數用來定義表格的列,這是一個陣列,其中的每一個物件用來定義一列。
對於每一個列物件:
sTitle 定義列的標題
sClass 定義列的樣式
fnRender 函式用來渲染列,這個函式將會傳遞一個引數物件,這個引數物件的 iDataColumn 屬性表示當前的列索引,aData 表示當前的行陣列。函式返回的結果將被填充到單元格中。
當然了,對於表示行的陣列來說,長度應該是相同的。如果某一行資料缺失或者提供了過多地資料的話,就會得到一個警告。
第三種資料來源是 AJAX,也就是說可以向伺服器發一個請求來獲得資料。
在初始化引數物件中,通過 sAjaxSource 的屬性傳遞請求的地址,bProcessing 表示是否需要顯示一個工作中的提示。
在 JSON 方式返回的資料中,需要一個名為 aaData 的屬性來提供實際的資料。
$(document).ready(
function
() {
$(
'#example'
).dataTable( {
"bProcessing"
:
true
,
"sAjaxSource"
:
'../examples_support/json_source.txt'
} );
} );
|
其中 json_source.txt 就是 JSON 資料,其中定義了一個名為 aaData 的屬性。這個檔案可以在下載的壓縮包中找到,在 examples\examples_support 資料夾中。
最後一種資料來源是伺服器,對於大量的資料來說,你可能希望在伺服器端完成所有的操作,分頁、排序、過濾等等。dataTable 可以通過伺服器完成這些功能,甚至其他的伺服器,像 Google Gears 或者 Adobe Air,這樣的話,dataTables 就是一個顯示資料和提供操作事件的前端模組。
$(document).ready(
function
() {
$(
'#example'
).dataTable( {
"bProcessing"
:
true
,
"bServerSide"
:
true
,
"sAjaxSource"
:
"../examples_support/server_processing.php"
} );
} );
|
對於伺服器來說,可以通過請求引數來獲得當前的操作資訊。
型別 | 名稱 | 說明 |
int | iDisplayStart | 顯示的起始索引 |
int | iDisplayLength | 顯示的行數 |
int | iColumns | 顯示的列數 |
string | sSearch | 全域性搜尋欄位 |
boolean | bEscapeRegex | 全域性搜尋是否正則 |
boolean | bSortable_(int) | 表示一列是否在客戶端被標誌位可排序 |
boolean | bSearchable_(int) | 表示一列是否在客戶端被標誌位可搜尋 |
string | sSearch_(int) | 個別列的搜尋 |
boolean | bEscapeRegex_(int) | 個別列是否使用正則搜尋 |
int | iSortingCols | 排序的列數 |
int | iSortCol_(int) | 被排序的列 |
string | sSortDir_(int) | 排序的方向 "desc" 或者 "asc". |
string | sEcho | DataTables 用來生成的資訊 |
這篇文章介紹了在 C# 中結合 LINQ 使用 DataTables 進行服務端處理的經驗 jQuery DataTables Plugin Meets C#
伺服器應該返回如下的 JSON 格式資料
型別 | 名稱 | 說明 |
int | iTotalRecords | 實際的行數 |
int | iTotalDisplayRecords | 過濾之後,實際的行數。 |
string | sEcho | 來自客戶端 sEcho 的沒有變化的複製品, |
string | sColumns | 可選,以逗號分隔的列名, |
array array mixed | aaData | 陣列的陣列,表格中的實際資料。 |
伺服器返回的資料示例如下:
{
"sEcho"
: 3,
"iTotalRecords"
: 57,
"iTotalDisplayRecords"
: 57,
"aaData"
: [
[
"Gecko"
,
"Firefox 1.0"
,
"Win 98+ / OSX.2+"
,
"1.7"
,
"A"
],
[
"Gecko"
,
"Firefox 1.5"
,
"Win 98+ / OSX.2+"
,
"1.8"
,
"A"
],
...
]
}
相關文章
- Jquery Datatables (2) 動態載入資料型別jQuery資料型別
- Jquery datatables 過載資料方法jQuery
- Jquery datatables 使用方法jQuery
- datatables使用ajax獲取資料
- 使用 RxJava 從多種來源中載入資料RxJava
- ASP.NET MVC 使用 Datatables (2)ASP.NETMVC
- 大資料帶來的四種思維大資料
- 8種通用網路分析資料來源
- asp.net mvc 中利用jquery datatables 實現資料分頁顯示ASP.NETMVCjQuery
- 資料整合平臺,多種異構資料來源連結
- Tomcat 5.0 資料來源使用薦Tomcat
- 提交資料四種方式
- 使用CRM系統資料分析的四種方法
- 基於DataTables的資料操作demo
- 使用RxJava從多個資料來源獲取資料RxJava
- MVC5和Jquery Datatables1.10MVCjQuery
- Jquery DataTables解決 Cannot reinitialise DataTable 問題jQuery
- JQuery datatables 給表格新增載入中效果jQuery
- 使用Maven配置JBoss、Wildfly資料來源Maven
- jndi資料來源
- AngularJS中獲取資料來源的幾種方式AngularJS
- 在Tomcat配置JNDI資料來源的三種方式Tomcat
- MyBatis初級實戰之四:druid多資料來源MyBatisUI
- 多資料來源與動態資料來源的權衡
- 四種資料ETL模式(ZT)模式
- 請教weblogic資料來源使用問題Web
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- 使用單例模式來實現動態資料來源管理單例模式
- 資料來源Parquet之使用程式設計方式載入資料程式設計
- 異構資料來源同步之資料同步 → DataX 使用細節
- 資料來源連線資料庫資料庫
- SparkSQL外部資料來源SparkSQL
- TongWeb資料來源原理Web
- jndi配置資料來源
- 多資料來源配置
- 為VNPY 2版本加入聚寬資料來源
- Grafana 系列-統一展示-2-Prometheus 資料來源GrafanaPrometheus
- Spring Boot 動態資料來源(Spring 註解資料來源)Spring Boot