使用 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資料型別
- datatables使用ajax獲取資料
- MVC5和Jquery Datatables1.10MVCjQuery
- 8種通用網路分析資料來源
- Jquery DataTables解決 Cannot reinitialise DataTable 問題jQuery
- JQuery datatables 給表格新增載入中效果jQuery
- 資料整合平臺,多種異構資料來源連結
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- 使用CRM系統資料分析的四種方法
- SpringBoot資料訪問之Druid資料來源的使用Spring BootUI
- MyBatis初級實戰之四:druid多資料來源MyBatisUI
- jQuery DataTables新增自定義多個搜尋條件jQuery
- 多資料來源與動態資料來源的權衡
- 使用Spring Boot配置JNDI資料來源 -Roy教程Spring Boot
- 使用Spring Boot配置多個資料來源 - UdithSpring Boot
- 資料來源Parquet之使用程式設計方式載入資料程式設計
- 異構資料來源同步之資料同步 → DataX 使用細節
- 使用 Addressables 來管理資源
- 使用單例模式來實現動態資料來源管理單例模式
- 資料來源(DataSource)是什麼以及SpringBoot中資料來源配置Spring Boot
- Grafana 系列-統一展示-2-Prometheus 資料來源GrafanaPrometheus
- 為VNPY 2版本加入聚寬資料來源
- SpringBoot2.x Data JPA 多資料來源爬坑Spring Boot
- SparkSQL外部資料來源SparkSQL
- 阿里DRUID資料來源阿里UI
- 多資料來源配置
- SpringBoot多資料來源Spring Boot
- TongWeb資料來源原理Web
- 超圖桌面版使用模板建立資料來源
- 使用Apache SeaTunnel高效整合和管理SftpFile資料來源ApacheFTP
- 多資料來源結合mybatis-plus的使用MyBatis
- 使用 SAP HANA Virtual Table 連線外部資料來源
- springboot 2 Hikari 多資料來源配置問題(dataSourceClassName or jdbcUrl is required)Spring BootJDBCUI
- SpringBoot2 整合JTA元件,多資料來源事務管理Spring Boot元件
- 使用 jQuery 讀取 Vue 元件的資料jQueryVue元件
- Spring系列 之資料來源的配置 資料庫 資料來源 連線池的區別Spring資料庫
- Druid資料來源使用(一)---單獨使用與整合springboot+mybatisUISpring BootMyBatis
- [hive]hive資料模型中四種表Hive模型
- 四種大資料分析方法介紹!大資料