DataTables 控件使用和心得 (2) - 参数Options
什么是DataTables参数(Options)
上篇我们说了,DataTables控件的加载函数dataTable()一般都有一个对象参数,这个对象参数就是整个DataTables控件的参数(Options),通过定义这个参数中的各种属性,来灵活控制DataTable的初始效果. 样例代码如下:
$('#example').dataTable({
“option1”:value1,
“option2”:value2,
… });
官方文档地址: http://datatables.net/reference/option/
下面是一些常用的参数列表,比较常用或者有价值的标示为绿色.
功能参数(Features)
参数名 |
说明 |
参考值 |
默认值 |
autoWidth |
定义是否由控件自动控制列宽 |
Boolean |
true |
deferRender |
定义在render时是否仅仅render显示的dom,在显示大量数据的情况下强烈建议设为true,显示少量数据或者真翻页方案可以设为false,注意在设为true时无法通过函数获取所有行的dom对象—因为它们并不存在. |
Boolean |
false |
info |
控制总数信息(标准界面右下角显示总数和过滤条数的控件)的显隐 |
Boolean |
true |
lengthChange |
控制是否能够调整每页的条数,如果设为false,标准的每页条数控制控件也会被隐藏. |
Boolean |
true |
ordering |
全局控制列表的所有排序功能. |
Boolean |
true |
paging |
全局控制列表的翻页功能,如果设为false,所有的默认翻页控件会被隐藏 |
Boolean |
true |
processing |
控制是否在数据加载时出现”Processing”的提示,一般在远程加载并且比较慢的情况下才会出现. 样式需要定义,否则比较丑. |
Boolean |
false |
scrollX |
控制在列过多过宽是,是否出现水平滚动条.注意使用这个参数时最好关闭响应式设计 |
Boolean |
false |
scrollY |
定义一个高度,当列表内容超过这个高度时,显示垂直滚动条,这个高度不算表头和翻页搜索等工具条的空间.支持数字或者css写法比如: 200或者’200px’ |
Number / String |
无 |
searching |
控制控件的搜索功能,如果为false,控件的搜索功能被完全禁用,而且默认搜索组件会被隐藏. |
Boolean |
true |
serverSide |
当设为true时,列表的过滤,搜索和排序信息会传递到Server端进行处理,实现真翻页方案的必需属性.反之,所有的列表功能都在客户端计算并执行 |
Boolean |
false |
数据参数(Data)
参数名 |
说明 |
参考值 |
data |
以Javascript数组对象方式设定列表显示数据 |
数组对象 |
ajax |
String模式: 直接传入一个string作为远程ajax请求路径 |
String |
|
对象模式: 支持JQuery.ajax函数的参数设置,支持type,url等标准参数. 例如: $('#example').dataTable( { "ajax": { "url": url, "type": "POST" } } ); |
JQuery ajax 函数对应参数 |
ajax.data |
和标准JQuery.ajax的data参数作用类似,但效果有所不同.仅当serverSide参数为true的时候,参数属性才有意义,当serverSide开启,DataTables组件会自行封装一个信息类发送给服务端,而ajax.data仅仅是对这个信息类进行调整和添加. 添加方式, ajax.data可以直接赋值一个对象,这个对象的属性会添加到原信息类里面去一起发送到服务端.例如: $('#example').dataTable( { "ajax": { "url": "data.json", "data": { "user_id": 451 } } } );
另外一种选择是传入一个方法,方法的参数就是当前发送到服务器的信息类,在方法中可以修改这个信息类. $('#example').dataTable( { "ajax": { "url": "data.json", "data": function ( d ) { d.extra_search = $('#extra').val(); } } } ); |
对象或者方法 |
ajax.dataSrc |
定义服务器返回对象里面保存数据的属性名称,默认为data,也即是说,在返回的Json数据中,所有列表数据保存在data属性中,这个属性不太建议修改. |
配置参数(Options)
参数名 |
说明 |
参考值 |
默认值 |
|||
deferLoading |
这个参数只有在ServerSide为Ture的时候才有作用,主要是针对列表已经通过HTML显示了一部分数据,而通知远程加载可以忽略这部分数据,在实际使用中这种情况并不常见. |
Number /Array |
false |
|||
destroy |
设为ture时通知dataTable函数完全重新建立一个新的控件实例,在一个页面内反复对同一个控件加载dataTable函数并且想重新建立控件时使用. |
Boolean |
false |
|||
displayStart |
列表初始显示的行索引,根据给出的行索引会自动翻页,比如一个每页10个的列表,那么给出20可以让其翻到第二页 |
Number |
无 |
|||
dom |
比较复杂的配置项,简言之就是通过一个自定义的字符串来定义DataTables里面所有组件的显示,位置和显隐. 具体请详见: http://datatables.net/reference/option/dom |
String |
“lfrtip” |
|||
lengthMenu |
定义页面长度组件里面的选项. |
Array |
[ 10, 25, 50] |
|||
orderCellsTop |
当然表头有多层td组成的时候,必须定义哪一个td的数据用于排序,false表示底部td,true表示顶部td. 比如以下情况:
true的时候排序会用2.1, false的时候排序会用2.2. |
Boolean |
false |
|||
orderClasses |
定义是否排序的列进行高亮显示 |
Boolean |
true |
|||
order |
定义列表的初始排序设定,为一个2维数组,子数组包括2个值,列索引和排序方向(asc/desc): 例如 "order": [[ 0, 'asc' ], [ 1, 'asc' ]] |
Array |
[[0, 'asc']] |
|||
orderMulti |
控制是否支持多重排序,如果为true,可以通过shift+点击列头实现多重排序,或者通过API实现,否则禁用该功能. |
Boolean |
true |
|||
orderFixed |
自定义固定的排序策略,该策略在任何排序操作中总是起效.可以通过对一个列的固定排序(可以是隐藏的列)来定义列表默认的排序策略. 数组方式,定义优先排序策略,如: "orderFixed": [ 0, 'asc' ] 该参数说明无论如何排序,永远先进行第一列的正向排序. 对象方式,可以利用关键字pre或post来定义这个规则是优先生效还是置后生效. "orderFixed": { "pre": [ 0, 'asc' ], "post": [ 1, 'asc' ] } |
Array/Object |
无 |
|||
pageLength |
定义初始的页长 |
Number |
10 |
|||
pagingType |
定义翻页组件的样式(有4个选择): simple - 只有上一页和下一页2个按钮 simple_numbers – 上一页,下一页和页码 full – 首页,末页,上一页,下一页4个按钮 full_numbers – 全部按钮和页面 |
String |
simple_numbers |
|||
scrollCollapse |
在设置了一定的scrollY值后起效,为true时,当列表内容不足以撑满scrollY的设定值时,列表高度会自动适应内容. |
Boolean |
false |
|||
search |
定义列表的初始搜索/过滤条件 Search对象可以有以下属性: |
Object |
无 |
|||
search.search |
过滤字符串,注意在默认设置下,所有列的数据都会参与过滤.比如当这个属性为”a”的时候,任何一个列只要包含”a”的行就会被显示.为空表示全部 |
String |
无 |
|||
search.caseInsensitive |
搜索是是否忽略大小写,true为忽略 |
Boolean |
true |
|||
search.regex |
定义搜索字符串是否为一个正则表达式 |
Boolean |
fasle |
|||
search.smart |
禁用获取启用DataTables控件内置的只能过滤算法,这个算法会把搜索字符串进行分割并只能搜索,关闭这个算法仅仅实现简单的字符串查找,false为关闭 |
Boolean |
true |
|||
searchCols |
分别定义每个列的过滤条件.该参数是一个对象数组,每个对象有2个属性: search: 搜索字符串 escapeRegex: 是否是正则表达式 注意不需要设置过滤的列也需要用null占位,比如: "searchCols": [ null, { "search": "My filter" }, null, { "search": "^[0-9]", "escapeRegex": false } ] |
Array |
无 |
|||
stripeClasses |
定义一个字符串数组,在显示行的时候依次使用里面的字符串作为行的class |
Array |
‘odd’ & ‘even’ |
列定义参数(Columns)
参数名 |
说明 |
参考值 |
默认值 |
columns |
列的初始状态的定义,该参数一个是对象数组,每一个对象元素定义一个列.注意,不需定义的列也必须以null占位,比如: "columns": [ { "searchable": false }, null, null ] |
Array |
无 |
columnDefs |
和columns设置非常类似,但可以通过targets属性可以根据灵活的选择需要设定的列.比columns更加灵活.比如: "columnDefs": [ { "targets": 0, "searchable": false } ] targets可以有多种写法: 0或者正整数(可用数组): 表示正向列的索引 负数(可用数组): 表示反向列的索引 字符串: 匹配th的class来选择列. "_all": 所有列,也是默认值. |
||
columns.data |
列的数据名,对应数据里面的属性名 |
String |
无 |
columns.name |
给列设置独立的名称,目前看意义不大 |
String |
无 |
columns.orderable |
设置列是否允许排序 |
Boolean |
true |
columns.searchable |
设置列是否允许过滤 |
Boolean |
true |
columns.type |
通过设置列的类型让控件在排序和过滤这个列是能更好的处理这个列的数据,比如日期,货币等.具体种类很多请参考这里: http://datatables.net/reference/option/columns.type |
String |
无 |
columns.visible |
设置列的可见性,true为显示 |
Boolean |
true |
columns.width |
强行设置列的宽度,支持数字和任何CSS写法,比如20%. |
String |
无 |
columns.render |
非常有用的函数,自定义列的内容.该属性比较常见的用法是函数用法,通过这个函数可以自定义改造列的任何内容,如果要在列中显示比较复杂的内容,这是一个比较好的选择.比如在列中加入功能按钮. 例如: "render": function ( data, type, row, meta ) { return '<a href="'+data+'">Download</a>'; } 4个属性的意思是: data : 当前单元格的数据 type: 当前列的类型 row: 当前行完整的数据对象 meta: 为一个子对象,包含3个属性 row: 当前行的索引 col: 当前列的索引 settings: 当前DataTables控件的setttings对象 |
Function |
无 |
可以看到,DataTables的Options设置还是比较全面和丰富的,当然Options仅仅能在控件初始化的时候对控件进行控制和影响,如果要在控件使用过程中对它进行控制和变化,就需要用到DataTables的函数库(API).这个我们将在下一篇文章中讨论.
DataTables 控件使用和心得 (2) - 参数Options的更多相关文章
- DataTables 控件使用和心得 (1) - 入门
什么是DataTables DataTables是一个基于HTML/CSS/JavaScript的前端列表组件. 基于JQuery 开源并且免费(除特殊支持服务) 主要特色: 高性能,响应式,功能完整 ...
- ASP.net button类控件click事件中传递参数
单击Button会同时触发这两个事件,但先执行Click,后执行Command,在button控件中加上参数属性 CommandArgument='' 在click响应函数中可以用以下代码获得传递的参 ...
- repeater控件自定义Url分页带参数
repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传 ...
- ***文件上传控件bootstrap-fileinput的使用和参数配置说明
特别注意: 引入所需文件后页面刷新查看样式奇怪,浏览器提示错误等,可能是因为js.css文件的引用顺序问题,zh.js需要在fileinput.js后面引入.bootstrap最好在filein ...
- iOS中UIButton控件的用法及部分参数解释
在UI控件中UIButton是极其常用的一类控件,它的类对象创建与大多数UI控件使用实例方法init创建不同,通常使用类方法创建: + (id)buttonWithType:(UIButtonType ...
- 解决Delphi的Indy10组件包TIdHttpServer控件解码HTTP请求时参数乱码的问题
Delphi6下使用Indy10组件包,其中的TIdHttpServer控件在处理HTTP请求的时候 不能正确解码含有汉字的参数,如: http://127.0.0.1/test?cmd=open&a ...
- 网页图表控件Highcharts如何详细设置参数
在下载了Highcharts范例之后,按照如下所示第一步第二步操作.在第二步中,默认并没有提供很多参数设置,比如如何去掉右下角的水印,如何自定义图标的高度宽度,背景颜色等等. 在我的另一篇文章中(Hi ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...
- web前端开发控件学习笔记之jqgrid+ztree+echarts
版权声明:本文为博主原创文章,转载请注明出处. 作为web前端初学者,今天要记录的是三个控件的使用心得,分别是表格控件jqgrid,树形控件ztree,图表控件echarts.下边分别进行描述. ...
随机推荐
- winform 异步读取数据 小实例
这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...
- NOIp蒟蒻的爆零记——HA-0132
考前: 从十一月开始的听课集训,连考六场:考前的最后两天写(da)着(zhe)各种各样的奇(C)葩(S)模板:一周的疯狂,已经过去: 考前的一晚:第二批高二的六个人聚在一起(还有滑稽大师),愉快的玩( ...
- PHP高并发高负载系统架构
PHP高并发高负载系统架构 1.为什么要进行高并发和高负载的研究 1.1.产品发展的需要 1.2.公司发展的需要 1.3.当前形式决定的 2.高并发和高负载的约束条件 2.1.硬件 2.2.部署 2. ...
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误。
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl); req.Us ...
- TCP/IP入门(3) --传输层
原文:http://blog.csdn.net/zjf280441589/article/category/1854365 传输层的主要功能 1)传输层为应用进程之间提供端到端的逻辑通信(网络层是为主 ...
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889 有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲Vi ...
- easyUI datagraid的列排序
在给datagraid做多列排序时请注意: 首先,做的是后台排序,那么需要设置: remoteSort:'true', 然后,不要添加 multiSort:'true',这个是多列一起排序无法实现.. ...
- JAVA/Android Map与String的转换方法
在Android开发中 Map与String的转换在,在一些需求中经常用到,使用net.sf.json.JSONObject.fromObject可以方便的将string转为Map.但需要导入jar包 ...
- tail queue代码阅读
tail queue是bdb中用的最多的数据结构. 定义在 src/dbinc/queue.h: 注: TRACEBUF,QMD_TRACE_HEAD等是为了 queue代码的debug, 这里移除出 ...
- websocket---Html5
使用websocket主要是处理,通过服务器向页面发送消息,进行页面操作的处理. 以前类似情况,由于程序立即相应,处理事件较短,所遇采用过ajax进行轮询, 但是由于本次,需要人工干预,所以采用web ...