了解DataTables
官方网站:http://www.datatables.net/
简介:DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。
主要特点:
自动分页处理
即时表格数据过滤
数据排序以及数据类型自动检测
自动处理列宽度
可通过CSS定制样式
支持隐藏列
易用
可扩展性和灵活性
国际化
动态创建表格
免费的
参数初始化:
bAutoWidth
是否启用自动适应列宽
默认值:True
示例代码:
$(document).ready(function(){$('#example').dataTable({"bAutoWidth":false});});
bDeferRender
是否启用延迟加载:当你使用AJAX数据源时,可以提升速度。
默认值:False
示例代码:
$(document).ready(function(){varoTable=$('#example').dataTable({"sAjaxSource":"sources/arrays.txt","bDeferRender":true});});
bFilter
是否启用内置搜索功能:可以跨列搜索。
默认值:True
示例代码:
$(document).ready(function(){$('#example').dataTable({"bFilter":false});});
bInfo
是否显示表格相关信息:例如翻页信息等。
默认值:True
示例代码:
$(document).ready(function(){$('#example').dataTable({"bInfo":false});});
bJQueryUI
是否启用 jQuery UI 皮肤插件支持
默认值:False
示例代码:
$(document).ready(function(){$('#example').dataTable({"bJQueryUI":true});});
bLengthChange
是否允许用户,在下拉列表自定义选择分页大小(10, 25, 50 and 100),需要分页支持
默认值:True
示例代码:
$(document).ready(function(){$('#example').dataTable({"bLengthChange":false});});
bPaginate
是否开启分页
默认值:Ture
示例代码:
$(document).ready(function(){$('#example').dataTable({"bPaginate":false});});
bProcessing
是否启用进度显示,进度条等等,对处理大量数据很有用处。
默认值:false
示例代码:
$(document).ready(function(){$('#example').dataTable({"bProcessing":true});});
bScrollInfinite
是否开启内置滚动条,并且显示所有数据
默认值:fasle
示例代码:
$(document).ready(function(){$('#example').dataTable({"bScrollInfinite":true,"bScrollCollapse":true,"sScrollY":"200px"});});
bServerSide
是否启用服务器处理数据源,必须sAjaxSource指明数据源位置
默认值:False
示例代码:
$(document).ready(function(){$('#example').dataTable({"bServerSide":true,"sAjaxSource":"xhr.php"});});
bSort
是否开启列排序功能,如果想禁用某一列排序,可以在每列设置使用bSortable参数
默认值:True
示例代码:
$(document).ready(function(){$('#example').dataTable({"bSort":false});});
bSortClasses
开关,指定当当前列在排序时,是否增加classes ‘sorting_1′, ‘sorting_2′ and ‘sorting_3’,打开后,在处理大数据时,性能有所损失
默认值:False
示例代码:
$(document).ready(function(){$('#example').dataTable({"bSortClasses":false});});
bStateSave
是否开启cookies保存当前状态信息
默认值:false
示例代码:
$(document).ready(function(){$('#example').dataTable({"bStateSave":true});});
sScrollX
是否开启水平滚动条
默认值:空 (字符串类型)
示例代码:
$(document).ready(function(){$('#example').dataTable({"sScrollX":"100%","bScrollCollapse":true});});
sScrollY
是否开启垂直滚动条,滚动条大小受限于Datatable的高度大小
默认值:空(字符串类型)
示例代码:
$(document).ready(function(){$('#example').dataTable({"sScrollY":"200px","bPaginate":false});});
aaSortingarray array[int,string], 如[], [[0,’asc’], [0,’desc’]]指定按多列数据排序的依据aaSortingFixed同上同上。唯一不同点是不能被用户的自定义配置冲突aLengthMenudefault [10, 25, 50, 100],可以为一维数组,也可为二维数组,比如:[[10, 25, 50, -1], [10, 25, 50, “All”]]这个为选择每页的条目数,当使用一个二维数组时,二维层面只能有两个元素,第一个为显示每页条目数的选项,第二个是关于这些选项的解释aoSearchColsdefault null, 类似:[null, {“sSearch”: “My filter”}, null,{“sSearch”: “^[0-9]”, “bEscapeRegex”: false}]给每个列单独定义其初始化搜索列表特性(这一块还没搞懂)asStripClassesdefault [‘odd’, ‘even’], 比如[‘strip1′, ‘strip2′, ‘strip3′]指定要被应用到各行的class风格,会自动循环bDestroytrue or false, default false用于当要在同一个元素上执行新的dataTable绑定时,将之前的那个数据对象清除掉,换以新的对象设置bRetrievetrue or false, default false用于指明当执行dataTable绑定时,是否返回DataTable对象bScrollCollapsetrue or false, default false指定适当的时候缩起滚动视图bSortCellsToptrue or false, default false(未知的东东)iCookieDuration整数,默认7200,单位为秒指定用于存储客户端信息到cookie中的时间长度,超过这个时间后,自动过期iDeferLoading整数,默认为null延迟加载,它的参数为要加载条目的数目,通常与bServerSide,sAjaxSource等配合使用iDisplayLength整数,默认为10用于指定一屏显示的条数,需开启分页器iDisplayStart整数,默认为0用于指定从哪一条数据开始显示到表格中去iScrollLoadGap整数,默认为100用于指定当DataTable设置为滚动时,最多可以一屏显示多少条数据oSearch默认{ “sSearch”: “”, “bRegex”: false, “bSmart”: true }又是初始时指定搜索参数相关的,有点复杂,没搞懂目前sAjaxDataProp字符串,default ‘aaData’指定当从服务端获取表格数据时,数据项使用的名字sAjaxSourceURL字符串,default null指定要从哪个URL获取数据sCookiePrefix字符串,default ‘SpryMedia_DataTables_’当打开状态存储特性后,用于指定存储在cookies中的字符串的前缀名字sDomdefault lfrtip (when bJQueryUI is false) or <“H”lfr>t<“F”ip> (when bJQueryUI is true)这是用于定义DataTable布局的一个强大的属性,另开专门文档来补充说明吧sPaginationType‘full_numbers’ or ‘two_button’, default ‘two_button’用于指定分页器风格sScrollXInnerstring default ‘disabled’又是水平滚动相关的,没搞懂啥意思
2.object: Data to be stored in the cookie
3.string: Cookie expires string
4.string: Path of the cookie to setstring: cookie formatted string (which should be encoded by using encodeURIComponent())null当每次cookies改变时,会触发这个函数调用fnDrawCallback无无无在每次table被draw完后调用,至于做什么就看着办吧fnFooterCallback1.node : “TR” element for the footer
2.array array strings : Full table data (as derived from the original HTML)
3.int : Index for the current display starting point in the display array
4.int : Index for the current display ending point in the display array
5.array int : Index array to translate the visual position to the full data array无无用于在每次重画的时候修改表格的脚部fnFormatNumber1.int : number to be formattedString : formatted string for DataTables to show the number有默认的用于在大数字上,自动加入一些逗号,分隔开fnHeaderCallback1.node : “TR” element for the header
2.array array strings : Full table data (as derived from the original HTML)
3.int : Index for the current display starting point in the display array
4.int : Index for the current display ending point in the display array
5.array int : Index array to translate the visual position to the full data array无无用于在每次draw发生时,修改table的headerfnInfoCallback1.object: DataTables settings object
2.int: Starting position in data for the draw
3.int: End position in data for the draw
4.int: Total number of rows in the table (regardless of filtering)
5.int: Total number of rows in the data set, after filtering
6.string: The string that DataTables has formatted using it’s own rulesstring: The string to be displayed in the information element.无用于传达table信息fnInitComplete1.object:oSettings – DataTables settings object无无表格初始化完成后调用fnPreDrawCallback1.object:oSettings – DataTables settings objectBoolean无用于在开始绘制之前调用,返回false的话,会阻止draw事件发生;返回其它值,draw可以顺利执行fnRowCallback1.node : “TR” element for the current row
2.array strings : Raw data array for this row (as derived from the original HTML)
3.int : The display index for the current table draw
4.int : The index of the data in the full list of rows (after filtering)node : “TR” element for the current row无当创建了行,但还未绘制到屏幕上的时候调用,通常用于改变行的class风格fnServerData1.string: HTTP source to obtain the data from (i.e. sAjaxSource)
2.array objects: A key/value pair object containing the data to send to the server
3.function: Function to be called on completion of the data get process that will draw the data on the page.void$.getJSON用于替换默认发到服务端的请求操作fnStateLoadCallback1.object:oSettings – DataTables settings object
2.object:oData – Object containing information retrieved from the state saving cookie which should be restored. For the exact properties please refer to the DataTables code.Boolean – false if the state should not be loaded, true otherwise无在cookies中的数据被加载前执行,可以方便地修改这些数据fnStateSaveCallback1.object:oSettings – DataTables settings object
2.String:sValue – a JSON string (without the final closing brace) which should be stored in the state saving cookie.String – the full string that should be used to save the state无在状态数据被存储到cookies前执行,可以方便地做一些预操作
具体的参数意思可以参考官方文档。这里提一下fnServerParams。这个参数可以帮我们传递页面的其他参数,这个例子中,我传递了关键字、起止日期信息,主要用于服务端的数据查找过滤。
用chrome看一下控件会向服务端传递什么:
这是底部的分页栏
当我点第二页时,传递参数如下:
注意到iDisplayLength是10,因为我默认是每页展示10条数据,这个值可以调整。当我点第二页时,iDisplayStart从0变到10。其实分页就是这么回事,前端告诉服务端,我需要那段数据,你给我找出来返回给我。
服务端的返回格式如下(PHP):
$ret=array("sEcho"=>intval($_GET['sEcho']),"iTotalRecords"=>$data_count,"iTotalDisplayRecords"=>$data_count,"aaData"=>array());
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。