dataTable
来源:互联网 发布:拍照漫画软件 编辑:程序博客网 时间:2024/05/16 10:53
项目中使用的一款表格框架,整合了大量的有的没有的功能
需要导包:jquery.dataTables.js
官网:https://www.datatables.net/
中文官网:http://datatables.club/
翻页操作什么的都是交给dataTable。
使用操作步骤
dataTable的参数配置:一般而言根据自己的需求配置(并不需要改变什么),最多修改一下每页显示的数据量和排序功能。
<span style="font-size:18px;">"bStateSave": true,//状态保存"bPaginate": true, //翻页功能"bLengthChange": false, //改变每页显示数据数量"bFilter": false, //过滤功能"bSort": false, //排序功能"bInfo": true,//页脚信息,显示于左下角,显示有几条记录,"bAutoWidth": false,//自动宽度,当需要自定义table的显示宽度时设置为false"iDisplayLength": 20, //每页显示20条记录,默认条件为20//显示样式需要修改时,如第一列需要左对齐,第二列需要右对齐,dataTable是不能在columnDefs的render来给td复制属性的,改样式表是无法做到每个都是特定的,//好在dataTable提供了createdRow属性"createdRow": function (row, data, dataIndex) { $(row).children('td').eq(4).attr('style', 'text-align: right;'); $(row).children('td').eq(5).attr('style', 'text-align: right;'); $(row).children('td').eq(6).attr('style', 'text-align: left;')},</span>
一次性请求所有数据:(后端不分页,前段分页)
<span style="font-size:18px;">$.ajax({ url: "userMappermissionList.aspx", data: { "method": "canclePermission", "UserId": UserIdVar, "MapId": id },});//根据后台封装好的json取数据,具体可以查看相应报文(dataTable的th个数要和你要显示的属性个数匹配,不然会报错)"columns":[ {"data":"id" }, {"data":"name"}.....]</span>
多次查询:每次翻页操作都是重新向数据库请求新的数据,而且每次都自请求一页的数据
fnServerData属性为请求操作。
sSource:对应sAjaxSource请求数据源操作
aoData:dataTable封装的数据,包括echo,起始id,每页长度,后台获取方式是使用request[*][value]获取
<span style="font-size:18px;">"bProcessing": false, // 是否显示取数据时的那个等待提示"bServerSide": true,//这个用来指明是通过服务端来取数据"sAjaxSource": "userMappermissionList.aspx",//这个是请求的地址"fnServerData": function (sSource, aoData, fnCallback) {// 获取数据的处理函数$.ajax({ "dataType": 'json', "type": "POST", "url": sSource,//这个就是请求地址对应sAjaxSource //aoData是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数 "data": { "aoData": aoData, "method": "GetMapInfoByUserId", "UserId": UserIdVar, "DataStatus": DataStatus, "dateMin": dateMin, "dateMax": dateMax },//回调函数,显示"success": function (msg) { fnCallback(msg);},error: function (xhr, textStatus, error) { if (typeof console == "object") { console.log(xhr.status + "," + xhr.responseText + "," + textStatus + "," + error); } }});</span>
(分页查询的响应正文是在后台自己封装的)
columnDefs属性设置每个列的属性要怎么显示,targets对应的列数,data对应传入的参数,render返回显示结果,bvisible是否显示。
外部设置查询条件:
外部根据对象的属性来查询响应的数据
<span style="font-size:18px;">var table = $('#table').DataTable();table.ajax.reload();</span>
重新载入dataTable。
补充:
在dataTable使用时遇到的问题:
1、一个单元格需要同一行的多个数据来决定时(需要传入id、再根据此时的状态status来决定显示样式)。
columnDefs 中有时为了根据多个对象决定一些显示时,可以使用columnDefs 的render中的full,full包含一行的所有数据,full是一个数组格式
完整实例:
<span style="font-size:18px;">var ip = "";var dateMin = "";var dateMax = "";var table = { "bStateSave": true,//状态保存 "bPaginate": true, //翻页功能 "bLengthChange": false, //改变每页显示数据数量 "bFilter": false, //过滤功能 "bSort": false, //排序功能 "bInfo": true,//页脚信息 "bAutoWidth": false,//自动宽度 "iDisplayLength": 20, //每页显示20条记录</div> "createdRow": function (row, data, dataIndex) { $(row).children('td').eq(4).attr('style', 'text-align: right;'); $(row).children('td').eq(5).attr('style', 'text-align: right;'); $(row).children('td').eq(6).attr('style', 'text-align: left;') }, "bProcessing": false, // 是否显示取数据时的那个等待提示 "bServerSide": true,//这个用来指明是通过服务端来取数据 "sAjaxSource": "userLog.aspx",//这个是请求的地址 "fnServerData": function (sSource, aoData, fnCallback) {// 获取数据的处理函数 $.ajax({ "dataType": 'json', "type": "POST", "url": sSource,//这个就是请求地址对应sAjaxSource "data": { "aoData": aoData, "method": "loadUserLog", "IP": ip, "dateMin": dateMin, "dateMax": dateMax },//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数 "success": function (msg) { fnCallback(msg); }, error: function (xhr, textStatus, error) { if (typeof console == "object") { console.log(xhr.status + "," + xhr.responseText + "," + textStatus + "," + error); } } }); }, //时间输出格式的修改 "columnDefs": [{ "targets": [3], "data": [3], "render": function (data, type, full) { if (data == "0001/1/1 0:00:00") { return "<td class='td-manage'></td>"; } else { return "<td class='td-manage'>" + data + "</td>"; } } } ]} //searchfunction search() { ip = $("#IP").val(); dateMin = $("#datemin").val(); dateMax = $("#datemax").val(); var table = $('#table').DataTable(); table.ajax.reload();}$(document).ready(function () { $("#table").dataTable(table);});</span>
0 0
- DataTable
- DataTable
- DataTable
- DataTable
- datatable
- DataTable
- DataTable
- DataTable
- DataTable
- datatable???
- DataTable
- dataTable
- DataTable
- datatable
- dataTable
- datatable
- DataTable
- DataTable
- Eclipse注释模板设置详解
- ACM总结
- 最详细bitbucket入门手册,手把手操作指南
- 【论文笔记】One Millisecond Face Alignment with an Ensemble of Regression Trees
- 网络构成
- dataTable
- 学累了可以看漫威电影啊
- windows与linux线程同步对比
- 安卓USB挂载设备监听
- 人脸关键点标识参考
- android logcat命令
- myeclipse 10 破解
- 人脸集数据库
- arcgis api for javascript 离线部署后,加载高德地图 本地加载测试已成功