Datatable 详解
来源:互联网 发布:avast网络安全软件 编辑:程序博客网 时间:2024/06/05 18:48
Datatable 详解
基本介绍
配置
1 下载到本地
2 引用CDN
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.css"><script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
3 NPM
npm install datatables.net # Core librarynpm install datatables.net-dt # Styling
详见Datatable官网
支持的数据格式
数组格式[]
var data = [ [ "Tiger Nixon", "System Architect" ], [ "Garrett Winters", "Director" ]]
$('#example').DataTable( { data: data} );
对象格式{}
[ { "name": "Tiger Nixon", "position": "System Architect"" }, { "name": "Garrett Winters", "position": "Director" }]
$('#example').DataTable( { data: data, columns: [ { data: 'name' }, { data: 'position' } ]} );
注意:columns的值一定与标签一一对应
ajax传值
datatable 中有内置的ajax属性,
$('#myTable').DataTable( { ajax: '/api/myData', columns: [ ... ]} );// or!$('#myTable').DataTable( { ajax: { url: '/api/myData', dataSrc: 'data' }, columns: [ ... ]} );
常用参数说明
功能参数
ordering:全局控制列表的所有排序功能-默认true;
paging:翻页功能-默认true;
processing:数据加载是否出现processing提示-默认false;
scrollX:过宽是否出现水平滚动条-默认false;
scrollY:定义一个高度,超过此高度出现垂直滚动条-数字或css写法,例如 200或200px-默认 无;
searching:搜索功能 -默认 true;
serverside:当设为true时,列表的过滤,搜索和排序信息会传递到Server端进行处理,实现真翻页方案的必需属性 - 默认 false;
列参数
columns:列的初始化设置;
columnsDefs:类似columns,但是可根据target属性灵活设定列
"columnDefs":[ { "targets" : [0], "data":"id" "render" : function(data,type,row, meta){ return ""; } }]
columns.searchable:设置列是否可以过滤
columns.orderable:设置列是否允许排序
columns.visible:设置列是否可见
column.render:自定义列内容
"render": function ( data, type, row, meta ) { return '<a href="'+data+'">Download</a>';}
data : 当前单元格的数据
type: 当前列的类型
row: 当前行完整的数据对象
meta: 为一个子对象,包含3个属性
row: 当前行的索引
col: 当前列的索引
settings: 当前DataTables控件的setttings对象
详细的属性可参考dataTable 参数说明
常用API
core
ajax.reload():重载数据,可用于row.delete删除操作之后;
data():获取所有数据;
clear:清理所有数据;
draw:重绘表格;
destroy():销毁数据;
on():table event listener;
Rows
row() / rows():选取单独一行/多行
row().id() / rows().ids():获取选择行id
row().index() / rows().indexes():得到
row().remove() / rows().remove():删除选中行
row().add / rows().add():添加一行/多行
$('#example tbody').on('click','#add',function(){ t.rows.add([ "Tiger Nixon", "System Architect" ]).draw();});
row().child().hide() / row().child.hide():隐藏所有子行/指定子行
row().child().remove() / row().child.remove():删除子行
row().child().show() / row().child().show():显示新子行
回调函数
fnCreateRow:创建行时候的回调函数
"fnCreateRow":function(row, data, dataindex){}
fnDrawCallback:重绘之后回调函数
"fnDrawCallback":function(setting){}
fnFooterCallback:底部的回调函数,可做总计
"fnFooterCallback": function(foot, data, start, end, display) {}
fnInitComplete:datatables初始化完毕后会调用
"fnInitComplete": function (oSettings, json) {}
fnRowCallback:行的回调函数
"fnRowCallback": function (row, data, displayIndex, displayIndexFull) {}
详细请参考Datatables中文API——回调函数
遇到的问题
1 delete之后datatable不更新
解决方法:使用 table.ajax.reload(); 重新加载ajax
$('#dataTable tbody').on('click','#delete',function(){ var id = $(this).parents('tr').children('td').children('input').val(); table.rows(table.row($(this).parents("tr")).index()).remove().draw(false); $.ajax({ type:"POST", url:"delete", data:{"id":id}, success:function(){ table.ajax.reload(); alert("Deleted successfully!"); } }); });
2 添加一行
解决方法:使用table.rows.add,并使用draw重绘
table.rows.add([{ "id":null, "name":null }] ).draw();
3 datatable加载 优先于jquery其他组件渲染效果加载
解决方法:将渲染写在 fnInitComplete 和 fnDrawCallback 中
注意,一定要记得加fnDrawCallback 否则重绘之后无渲染结果
- DataTable详解
- DataTable 详解
- DataTable详解
- Datatable 详解
- DataSet和DataTable详解
- 详解DataSet和DataTable
- DataSet和DataTable详解
- DataSet和DataTable详解
- 详解DataTable用法
- 深入详解DataTable
- 深入详解DataTable
- DataSet和DataTable详解
- C#中的DataTable详解
- DataSet和DataTable详解
- datatable参数详解
- Bootstrap的Datatable详解
- jQuery dataTable使用详解
- C# DataTable使用方法详解
- 优雅地使用pt-archiver进行数据归档
- Bootstrap用户登录界面的实现(BootStrap入门2)
- Git分支管理策略
- API网关
- Cortex-M3 内部寄存器
- Datatable 详解
- jmeter应用---逻辑控制器(二)
- 插入排序
- 七单元作业
- TCP/IP、Http的区别
- ubuntu16.04 安装java web 运行环境过程 及部署项目过程
- PHP中的自动加载
- xml文件--JDOM方式解析xml文件
- FastCGI特点原理、nginx与php-fpm两种通信方式对比