分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

jquery datatables 的常见参数配置

发布时间:2023-09-06 01:34责任编辑:胡小海关键词:配置

1:导入包:

URL:http://www.datatables.net/

分别导入css和js文件

Html代码
  1. <</span>styletype="text/css"title="currentStyle">
  2. @import"css/demo_page.css";
  3. @import"css/demo_table.css";
  4. @import"css/demo_table_jui.css";
  5. </</span>style>
  6. <</span>scripttype="text/javascript"language="javascript"
  7. src="js/jquery.js"></</span>script>
  8. <</span>scripttype="text/javascript"language="javascript"
  9. src="js/jquery.dataTables.js"></</span>script>

加载

Html代码
  1. <</span>scripttype="text/javascript">
  2. $(document).ready(function(){
  3. $(‘#example‘).dataTable();
  4. });
  5. </</span>script>

表单

Html代码
  1. <</span>div>
  2. <</span>div>
  3. <</span>tablecellpadding="0"cellspacing="0"border="0"width="100%">
  4. <</span>thead>
  5. <</span>tr>
  6. <</span>thwidth="20%">Firstname</</span>th>
  7. <</span>thwidth="20%">Lastname</</span>th>
  8. <</span>thwidth="35%">City</</span>th>
  9. <</span>thwidth="25%">Date</</span>th>
  10. </</span>tr>
  11. </</span>thead>
  12. </</span>table>
  13. </</span>div>
  14. </</span>div>

问题:有时提示找不到datatable方法

原因
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

从后台ajax得数据重建datatables(表单的id要与json的key一致)

Js代码
  1. $.ajax({
  2.   type:‘get‘,//可选get
  3.   url:‘${projectPath}/search‘,
  4.   data:{"channelType":$(‘#channelType‘).val(),"channel":$(‘#channel‘).val(),"day":$(‘#day‘).val(),"startTime":$(‘#startTime‘).val(),"endTime":$(‘#endTime‘).val(),"database":$(‘#database‘).val()},
  5.   dataType:‘text‘,//服务器返回的数据类型可选XML,Jsonjsonpscripthtmltext等
  6.   success:function(msg){
  7. varmsgObj=JSON.parse(msg);
  8. //重新构建table
  9. $(‘#example‘).dataTable().fnClearTable();//将数据清除
  10.  $(‘#example‘).dataTable().fnAddData(packagingdatatabledata(msgObj),true);//数据必须是json对象或json对象数组
  11.  
  12.   },
  13.   error:function(){
  14.   alert(‘error‘);
  15.   }
  16. })})

传入的数据

Js代码
  1. //把服务器返回的数据转成datatable须要的格式
  2. functionpackagingdatatabledata(msgObj){
  3. vareditHtml="编辑";
  4. //vareditHtml="编辑";
  5. vara=[];
  6. vartableName=[‘day‘,‘data‘,‘indata‘,‘edit‘];
  7. varbanddata=storjson(msgObj[‘data‘]);
  8. varbandindata=storjson(msgObj[‘indata‘]);
  9. for(varkeyinbanddata){
  10. vartempObj=newObject();
  11. tempObj.day=key;
  12. tempObj.data=banddata[key];
  13. tempObj.indata=bandindata[key];
  14. tempObj.edit=editHtml;
  15. a.push(JSON.parse(JSON.stringify(tempObj,tableName)));
  16. }
  17. returna;
  18. }

传入的是一个对象数组,每个对象代表一行,对象的属性即是列

单击时得到某行的值

须要引入 jquery.dataTables.nightly.js 在附件中有

Js代码
  1. $(document).ready(function(){
  2. $(‘#example‘).dataTable();
  3. $(‘#exampletbodytr‘).live(‘click‘,function(){
  4. varsTitle;
  5. varnTds=$(‘td‘,this);
  6. varsday=$(nTds[0]).text();//得到第1列的值
  7. varsout=$(nTds[1]).text();
  8. varsin=$(nTds[2]).text();
  9. });
  10. });

2:详细配置

Js代码
  1. vardocrTable=$(‘#docrevisontable‘).dataTable({
  2. "bProcessing":true,//DataTables载入数据时,是否显示‘进度’提示
  3. "bServerSide":true,//是否启动服务器端数据导入
  4. "bStateSave":true,//是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
  5. "bJQueryUI":true,//是否使用jQury的UItheme
  6. "sScrollY":450,//DataTables的高
  7. "sScrollX":820,//DataTables的宽
  8. "aLengthMenu":[20,40,60],//更改显示记录数选项
  9. "iDisplayLength":40,//默认显示的记录数
  10. "bAutoWidth":false,//是否自适应宽度
  11. //"bScrollInfinite":false,//是否启动初始化滚动条
  12. "bScrollCollapse":true,//是否开启DataTables的高度自适应,当数据条数不够分页数据条数的时候,插件高度是否随数据条数而改变
  13. "bPaginate":true,//是否显示(应用)分页器
  14. "bInfo":true,//是否显示页脚信息,DataTables插件左下角显示记录数
  15. "sPaginationType":"full_numbers",//详细分页组,可以支持直接跳转到某页
  16. "bSort":true,//是否启动各个字段的排序功能
  17. "aaSorting":[[1,"asc"]],//默认的排序方式,第2列,升序排列
  18. "bFilter":true,//是否启动过滤、搜索功能
  19. "aoColumns":[{
  20. "mDataProp":"USERID",
  21. "sDefaultContent":"",//此列默认值为"",以防数据中没有此值,DataTables加载数据的时候报错
  22. "bVisible":false//此列不显示
  23. },{
  24. "mDataProp":"USERNAME",
  25. "sTitle":"用户名",
  26. "sDefaultContent":"",
  27. "sClass":"center"
  28. },{
  29. "mDataProp":"EMAIL",
  30. "sTitle":"电子邮箱",
  31. "sDefaultContent":"",
  32. "sClass":"center"
  33. },{
  34. "mDataProp":"MOBILE",
  35. "sTitle":"手机",
  36. "sDefaultContent":"",
  37. "sClass":"center"
  38. },{
  39. "mDataProp":"PHONE",
  40. "sTitle":"座机",
  41. "sDefaultContent":"",
  42. "sClass":"center"
  43. },{
  44. "mDataProp":"NAME",
  45. "sTitle":"姓名",
  46. "sDefaultContent":"",
  47. "sClass":"center"
  48. },{
  49. "mDataProp":"ISADMIN",
  50. "sTitle":"用户权限",
  51. "sDefaultContent":"",
  52. "sClass":"center"
  53. }],
  54. "oLanguage":{//国际化配置
  55. "sProcessing":"正在获取数据,请稍后...",
  56. "sLengthMenu":"显示_MENU_条",
  57. "sZeroRecords":"没有您要搜索的内容",
  58. "sInfo":"从_START_到_END_条记录总记录数为_TOTAL_条",
  59. "sInfoEmpty":"记录数为0",
  60. "sInfoFiltered":"(全部记录数_MAX_条)",
  61. "sInfoPostFix":"",
  62. "sSearch":"搜索",
  63. "sUrl":"",
  64. "oPaginate":{
  65. "sFirst":"第一页",
  66. "sPrevious":"上一页",
  67. "sNext":"下一页",
  68. "sLast":"最后一页"
  69. }
  70. },
  71. "fnRowCallback":function(nRow,aData,iDisplayIndex){
  72. if(aData.ISADMIN==‘1‘)
  73. $(‘td:eq(5)‘,nRow).html(‘管理员‘);
  74. if(aData.ISADMIN==‘2‘)
  75. $(‘td:eq(5)‘,nRow).html(‘资料下载‘);
  76. if(aData.ISADMIN==‘3‘)
  77. $(‘td:eq(5)‘,nRow).html(‘一般用户‘);
  78. returnnRow;
  79. },
  80. "sAjaxSource":"../use/userList.do?now="+newDate().getTime(),
  81. //服务器端,数据回调处理
  82. "fnServerData":function(sSource,aDataSet,fnCallback){
  83. $.ajax({
  84. "dataType":‘json‘,
  85. "type":"POST",
  86. "url":sSource,
  87. "data":aDataSet,
  88. "success":fnCallback
  89. });
  90. }
  91. });
  92. $("#docrevisontabletbody").click(function(event){//当点击表格内某一条记录的时候,会将此记录的cId和cName写入到隐藏域中
  93. $(docrTable.fnSettings().aoData).each(function(){
  94. $(this.nTr).removeClass(‘row_selected‘);
  95. });
  96. $(event.target.parentNode).addClass(‘row_selected‘);
  97. varaData=docrTable.fnGetData(event.target.parentNode);
  98. $("#userId").val(aData.USERID);
  99. $("#userN").val(aData.USERNAME);
  100. });
  101. $(‘#docrevisontable_filter‘).html(‘用户管理列表‘);
  102. $(‘#docrevisontable_filter‘).append(‘‘);
  103. $(‘#docrevisontable_filter‘).append(‘‘);
  104. $(‘#docrevisontable_filter‘).append(‘‘);
  105. $(‘#docrevisontable_filter‘).append(‘‘);
  106. }

设置隐藏列

Js代码
  1. varoTable=$(‘#example‘).dataTable();
  2. oTable.fnSetColumnVis(0,false);//隐藏列

得到当前页面中的数据

var alldata=$(‘#example‘).dataTable().fnGetData();//得到页面中所有对象
// Row data
$(document).ready(function() {
oTable = $(‘#example‘).dataTable();

oTable.$(‘tr‘).click( function () {
var data = oTable.fnGetData( this );
// ... do something with the array / object of data for the row
} );
} );


// Individual cell data
$(document).ready(function() {
oTable = $(‘#example‘).dataTable();

oTable.$(‘td‘).click( function () {
var sData = oTable.fnGetData( this );
alert( ‘The cell clicked on had the value of ‘+sData );
} );
} );

刷新表中的数据(最后一个参数是否重绘表格,false你浏览到第二页不会刷跑到第一页,但数据不会改变)

$(‘#example‘).dataTable().fnUpdate( ‘
我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved