博主是一个java后端程序员,前端技术会用但不精通,做后台的一些功能经常要涉及表格的展示,分页,搜索,排序等等一系列功能,在经历了一段时间的原始手段,开始接触并使用Datatables,一个jquery表格插件,上手很快,重点是超级好用,有完善的中文文档,今天有空,整理一下Datatable的一些使用方法及注意事项,以便随时查阅.

DataTables支持的功能:

  1.分页,只需要返回符合规范的数据类型,Datatable能帮我们实现好用的分页,同时支持排序,和即时搜索.

  2.丰富的数据源的支持

  3,支持国际化,支持多种主题.

快速使用

  1.使用Datatables非常简单,只需要引入一个css样式文件和一个js脚本文件,即可,官网提供了文件的cdn地址可直接引用.

  CSS: //cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css

  JS:   //cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js

  2.js中,使用一下简单的几行代码,就能初始化datatables风格的表格样式,并使用Datatable提供的丰富功能.

 $(document).ready(function(){
$('#myTable').DataTable();
});

  html页面中的table标签定义一个id,比如id="myTable".

丰富配置项

  以上就可以实现基本风格的datatables样式,datatables默认情况下已启用一些功能,比如搜索,排序,分页,要想更加自由的控制样式,我们需要更详细的配置.

DOM定位

  dom定位可以实现你自由的布局 分页,搜索框等等这些组件,以下是一些组件以及字符缩写.

  • l - Length changing 每页显示多少条数据选项
  • f - Filtering input 搜索框
  • t - The Table 表格
  • i - Information 表格信息
  • p - Pagination 分页按钮
  • r - pRocessing 加载等待显示信息

  如果我们使用下面的代码来控制样式,表示 i显示在top(顶部),flp显示在bottom(底部).这样就可以自定义组件位置了.

$('#example').dataTable( {
"dom": '<"top"i>rt<"bottom"flp><"clear">'
} );

国际化配置

  datatables使用的语言选项可以通过language来配置,语言配置作为初始化配置的一部分,可以通过一下配置来自定义页面各个地方的显示文本.  

$('#example').DataTable({
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
}
});

限制水平宽度/垂直高度

  如果需要在一个定宽或者定高的table里展示数据,为了能够展示所有的数据,就要限制宽度,或高度,使用垂直或水平滚动条,在Datatable中使用如下配置:

$(document).ready(function() {
$('#example').dataTable( {
//开启水平滚动条
"scrollX": true
//设置固定高度为200px 数据量溢出时出现滚动条
"scrollY": "200px",
"scrollCollapse": "true",
//不启用分页(展示所有)
"paging": "false"
} );
} );

其他配置功能:

$(document).ready(function() {
$('#example').dataTable( {
//禁用分页
"paging": false,
//禁用排序
"ordering": false,
//禁用本地搜索
"searching":false,
//开启选择每页显示多少记录的下拉框 如果pageing配置为false,此配置会自动置为false
"lengthChange":true,
//是否显示正在处理的状态。开启后在数据加载过程中,会有正在加载状态
"processing": "true"
//是否显示正在处理的状态。开启后在数据加载过程中,会有正在加载状态,在处理耗时数据时比较有用
"processing": "true"
//开启延迟渲染,假设加载1000条数到表格.每页显示10条,开启后datatables只会创建10个节点,即根据分页的生命周期来创建行
"deferRender": true
//禁用自动列宽的计算,如果以自定义列宽,建议禁用,因为此操作会耗费一些额外时间计算列宽
"autoWidth": false,
//禁用状态保存 开启后再次加载页面表格状态会被设成之前的状态
"stateSave" : false,
} );
} );

数据源

  这里主要讲解ajax获取对象数据

$(document).ready(function() {
$('#example').DataTable( {
//ajax可以接收string,object,fucntion
"ajax": {
//type url 不需多说
"type": "POST",
"url":$('#game_detail_data').attr("data-url"),
//从服务器获得json数据,使用dataSrc属性把data改为aodata
"dataSrc": "aoData",
//请求参数,添加额外的参数发送到服务器 接受一个fucntion
"data":function(d){
d.pageType='DETAIL';
d.channelName=$("#channelname").val().trim();
d.tag=$("#tag").val();
d.startTime=$("#startTime").val();
d.endTime=$("#endTime").val();
}
},
//返回数据是对象列表的时候需要使用如下方式与列名一一对应好
"columns": [
{ "data": "name" },
{ "data": "age" },
{ "data": "sex",
//渲染数据显示在表格中,render可以让你在table显示非常多样化的格式
        "render" : function(data, type, full, meta) {
          if(data=='boy'){
           data ="男";
           }else{
           data ="女";
     }
return data;
}},
},
{ "data": "phone" },
{ "data": "address" },
{ "data": "salary" }
]
} );
} );

回调函数

  datatable支持在数据初始化的各个时机进行一些自定义操作,下面说两个比较常用的:

$('#example').dataTable( {
//数据初始化表格绘制成功后调用此函数
"initComplete": function() {
alert( '初始化以后调用' );
}
//每次表格重绘的时候都调用这个函数
"drawCallback": function( settings ) {
alert( '每次表格重绘时调用' );
}
} );

参考文档

  Datatables官方文档

  

Datatables快速入门开发--一款好用的JQuery表格插件的更多相关文章

  1. 一款比较强大的jquery表格插件Datatables

    Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 链接:http://www.datatables.club/ 本人无聊时发现的一款用 ...

  2. jquery表格插件Datatables使用、快速上手

    Datatables使用 一.简介 官网:https://datatables.net/ 中文官网:http://datatables.club/ Datatables是一款jquery表格插件.它是 ...

  3. 推荐几款jQuery表格插件

    平时项目中,会碰到很多表格元素,这里推荐几款jQuery表格插件. Stackable.js 通常在小屏幕上,表格的表形形式不大好,因为用户会缩放平移,或者就是表格太小,导致数据不可见.Stackab ...

  4. 25款顶级的jQuery表格插件

    jQuery 表格插件可以让你创建各种各样的表格布局,表格布局是报纸和杂志中最常见的布局,现在的网站中也很常见,在这篇文章中,我向大家推荐25个jQuery 的表格插件,你可以任意控制表格的行和列,用 ...

  5. 9款超酷的jQuery/CSS3插件

    Article From here: http://js.itivy.com/?p=1883 1.jQuery向前滑动切换焦点图 这款jQuery焦点图非常绚丽,切换图片的时候每张图片是向前滑动的,很 ...

  6. 前端开发:一个开源、简单易用的jQuery表格插件(DataTables)

    DataTables是一个基于jQuery库的开源(MIT协议)表格插件,支持添加.排序.分页.搜索.过滤等功能,使用简单.广受欢迎,能够与主流前端UI整合(如bootstrap.jQuery UI等 ...

  7. 推荐15款响应式的 jQuery Lightbox 插件

    利用现代 Web 技术,网络变得越来越轻巧与.模态框是突出展现内容的重要形式,能够让用户聚焦到重要的内容上去.在这个列表中,我们编制了15款响应式的 jQuery 灯箱库,这将有助于开发人员创建和设计 ...

  8. JQuery表格插件DataTables 当前页合计功能

    公司项目表格插件使用的是DataTables,最近添加表合计功能,发现百度统一都是如图类型的代码,不知道是配置问题还是怎么了,在我的页面下根本不能用 var addd=0; $(document).r ...

  9. 精选29款非常实用的jQuery应用插件

    今天我们来分享一些实用的jQuery应用插件,没有特别花哨,但都比较实用,jQuery菜单.jQuery图片都有涉及到,一起来看看. 1.jQuery+CSS3仿IOS无线局域网Wifi DEMO演示 ...

随机推荐

  1. javascript事件委托机制详解

    以个人前端工作面试经历来看,javascript事件委托是问的最多的一类题目之一,熟悉事件委托能够了解你对于javascript的掌握程度. 面试官可能问一下问题,现在有5个li待办事件,需要实现当点 ...

  2. javaScript操作DOM对象(看三遍,敲三遍,写三遍! 不会你找我)!!

    DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API 使用javaScript操作DOM对象通常分为三类:1.DOM CORE        2.HTM ...

  3. 【踩坑记录】记一次MySQL主从复制延迟的坑

    最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...

  4. mysql update 批量更新

    UPDATE cntheater SET title = (SELECT title FROM cntheater_copy WHERE cntheater.id = cntheater_copy.i ...

  5. nginx+ftp搭建图片服务器(Windows Server服务器环境下)

    几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使 ...

  6. 总结一下最近用过的phpcms语法

    到目前为止用到过的phpcms语法: 1.取栏目名称: {category[$catid][catname]} 2.取栏目地址: {category[14][url]} 3.取一级栏目: {pc:co ...

  7. 【Android Developers Training】 90. 序言:解决云储存冲突

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. 【Android Developers Training】 86. 基于连接类型修改您的下载模式

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  9. 三、SolrCloud的搭建

    本次安装是单台虚拟机安装,所以采用伪集群的方式进行安装,如果是真正的生产环境,将伪集群的ip改下就可以了,步骤是一样的. SolrCloud结构图如下: 环境准备: CentOS-6.4-i386-b ...

  10. jsp登陆页面验证码在火狐浏览器不能刷新问题处理方案

    jsp登陆页面在火狐浏览器验证码不能刷新问题处理方案: <img src="YzmServlet" onClick="this.src='YzmServlet?ti ...