jQuery dataTables四种数据来源[转]
四种数据来源
对于 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" |
], |
... |
] |
} |
转载于:https://my.oschina.net/u/2260184/blog/540577
jQuery dataTables四种数据来源[转]的更多相关文章
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- Python中xml、字典、json、类四种数据的转换
最近学python,觉得python很强很大很强大,写一个学习随笔,当作留念注:xml.字典.json.类四种数据的转换,从左到右依次转换,即xml要转换为类时,先将xml转换为字典,再将字典转换为j ...
- Oracle数据库四种数据完整性约束
Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...
- 【hive】——Hive四种数据导入方式
Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...
- iOS中常用的四种数据持久化技术
iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...
- Jquery DataTables 获取表格数据及行数据
注意table变量是 1.jQuery DataTables 行号获取 $("#example tbody tr").on("click", function( ...
- Hive四种数据导入方式介绍
问题导读 1.从本地文件系统中通过什么命令可导入数据到Hive表? 2.什么是动态分区插入? 3.该如何实现动态分区插入? 扩展: 这里可以和Hive中的三种不同的数据导出方式介绍进行对比? Hive ...
- 013-HQL中级3-Hive四种数据导入方式介绍
Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...
- jQuery中四种事件监听的区别
原文链接:点我 我们知道jquery提供了四种事件监听方式,分别是bind.live.delegate.on,下面就分别对这四种事件监听方式分析. 已知有4个列表元素: 列表元素1 列表元素2 列表元 ...
随机推荐
- 手把手教你分析Mysql死锁问题
前言 前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~ 发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题 准备好数据环境 模拟死锁案发 分析死锁日志 分析死锁结果 环境准 ...
- Linux系统安装java jdk
1)下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 我这里下载的是 ...
- python 爬虫之 urllib库
文章更新于:2020-03-02 注:代码来自老师授课用样例. 一.初识 urllib 库 在 python2.x 版本,urllib 与urllib2 是两个库,在 python3.x 版本,二者合 ...
- Pytest系列(14)- 配置文件pytest.ini的详细使用
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 pytest配置文件可以改变 ...
- 虚拟机安装windows sever2008
1.打开并进行新建虚拟机 2.默认选择“典型” 3.选择“安装程序盘映像文件”,并‘浏览’选择本地的文件 4. 5.后面的默认选择即可,安装路径可自己修改 6.这一步的磁盘大小可自己修改的,这里先预设 ...
- 04 jmeter使用方式3种
1.手工添加配置元件编写 2.jmeter+badboy 工具录制---不建议使用 3.设置代理服务器(jmeter添加‘非测试元件-http代理服务器’,再添加一个线程组用来保留代理抓取的url,设 ...
- IO流学习总结
IO: 概述: IO流用来处理设备之间的数据传输,如上传文件和下载文件 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中按照数据流向: 输入流 读入数据 从操作系统上读入文件到 ...
- Web三维编程入门总结之二:面向对象的基础Web3D框架
本篇主要通过分析Tony Parisi的sim.js库(原版代码托管于:https://github.com/tparisi/WebGLBook/tree/master/sim),总结基础Web3D框 ...
- 别再问我 new 字符串创建了几个对象了!我来证明给你看!
我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案.有人说创建了 1 个对象,也有人说创建了 2 ...
- FormCloseQuery
FormCloseQuery是一个事件回调函数,Close是一个功能函数.而FormCloseQuery与窗口的close有什么不同,通过跟踪Call stack发生在调用Close()函数关闭窗口时 ...
