网站开发之数据表开发库——Datatables

news/2024/5/10 11:15:42/文章来源:https://blog.csdn.net/qq_32690999/article/details/77854848

我们在做网站开发时,很常见的一个需求是做数据展示表,并且可能需要数据表能够实现一些数据筛选、排序等能够定制展现方式功能,也包括对表的样式美观会有一些需求。而这些全部都已经由Javascript的一个库——Datatables做到了,我们只需要学习一下这个库的使用,就可以轻松地做出比较美观,功能全面,高度可定制化的表格。

Datatables中文网站

Datatables官方站

开始

官方提供的简单demo如下。只要引入JQUERY库以及DT(Datatables)的css和js三个文件就可以开始使用DT了。

<!--第一步:引入Javascript / CSS (CDN)-->
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.15/css/jquery.dataTables.css"><!-- jQuery -->
<script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script><!-- DataTables -->
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script><!--或者下载到本地,下面有下载地址-->
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="DataTables-1.10.15/media/css/jquery.dataTables.css"><!-- jQuery -->
<script type="text/javascript" charset="utf8" src="DataTables-1.10.15/media/js/jquery.js"></script><!-- DataTables -->
<script type="text/javascript" charset="utf8" src="DataTables-1.10.15/media/js/jquery.dataTables.js"></script><!--第二步:添加如下 HTML 代码-->
<table id="table_id_example" class="display"><thead><tr><th>Column 1</th><th>Column 2</th></tr></thead><tbody><tr><td>Row 1 Data 1</td><td>Row 1 Data 2</td></tr><tr><td>Row 2 Data 1</td><td>Row 2 Data 2</td></tr></tbody>
</table><!--第三步:初始化Datatables-->
$(document).ready( function () {$('#table_id_example').DataTable();
} );



生成的表格效果如下:
这里写图片描述

可以通过下拉框选择每页表格展示的记录条数,并通过右下方的按钮进行翻页;可以通过点击列旁边的按钮改变记录的排序;也可以在search框直接输入文字查询相关记录(搜索所有列的内容)。大家可以实际在这里感受一下。

定制自己的table

DT的一个比较突出的地方时它具有比较方便进行定制的特点,也就是你可以很简单地控制table要哪些控件,不要哪些控件,能提供哪些功能,不能提供哪些。

DataTables是一个可高度配置化的类库,可以在生成HTML tables过程中的所有方面实现定制。所有特性可以通过打开、关闭或者定制来满足你对表格所有的要求。 定制要先定义一个options,然后传入$().DataTable()构造函数,通过定制options的内容来实现定制。 - 例如下面的代码 scrollYOption 和 pagingOption 选项用来允许滚动和禁止分页:$('#myTable').DataTable( {scrollY: 300,paging: false} );

如上所述,只要在DT表的初始化函数里面用键值对的方式去对DT表的一些特性进行配置,就可以完成对生成表格的定制。很多的特性都是bool型的,用true和false就可以完成绝大多数的功能控制,就像开关一样简单。其它的就基本是一些数值类型的值配置。

再看一下这个例子:

$('#myTable').DataTable( {searching: false,ordering:  false} );

生成的表格效果如下:

这里写图片描述

可以看到,表格右上角的搜索框没了,列旁边的排序按钮也没了,因为我们在初始化函数里已经把这两个功能关闭了!so easy!

DT表的所有可配置选项在这里,以下是一些比较常用的选项:

选项作用
jQueryUIOption控制是否使用jquerui的样式(需要引入jqueryui的css)
infoOption控制是否显示表格左下角的信息
lengthChangeOption是否允许用户改变表格每页显示的记录数
orderingOption是否允许Datatables开启排序
pagingOption是否开启本地分页
processingOption是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
scrollXOption设置水平滚动
scrollYOption设置垂直滚动
searchingOption是否允许Datatables开启本地搜索
serverSideOption是否开启服务器模式
stateSaveOption保存状态 - 在页面重新加载的时候恢复状态(页码等内容)
autoWidthOption控制Datatables是否自适应宽度
deferRenderOption控制Datatables的延迟渲染,可以提高初始化的速度

不过注意,如果配置时不小心把属性拼写错了,或者用到了DT表本身没有的属性,那么表格会变回普通的HTML原生表格的样式,这时回头检查一下刚才的配置哪里错了就行。

更具体的使用方式大家去看官网的手册就好啦!

从数据库获取数据源

本部分参照这里

这是最常见的需求了:从数据库获得数据,用DT表展示出来。

比较常用的一种方式就是用ajax去请求数据,这里介绍相应的两种方法,一种是直接将数据拿来展示,另一种将数据进行一定处理后再展示。

第一种直接展示

在DT表的初始化函数中,对”ajax”属性进行配置,其值设置为你的数据来源,可以是一个文件,也可以是一个请求地$(‘#example’).DataTable( {
“ajax”: “data.json”
} );返回的数据,有如下的格式要求:

//data.json格式:
{"data": [[{"Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$3,120"},{.....},]......]
}

即{“data”:[{},{},….]},要保证首先最外层是一个json对象,只有一个key为”data”,其值为真正的数据源,以json数组的形式呈现,即[{},{},….]。

这样之后,ajax如果请求成功,就会自动将返回的数据源加载到DT表中。

处理后展示

有时候可能需要对传来的数据先进行一些格式处理,比如日期的格式化,或者比如讲一些文本转换成超链接形式,这时就用以下形式:

$('#example').DataTable( {"ajax": {"url": "data.json","dataSrc": function ( json ) {for ( var i=0, ien=json['data'].length ; i<ien ; i++ ) {json['data'][i]['title'] = '<a href="'+json['data'][i]['url']+'">json['data'][i]['title']</a>';}return json['data'];}}
} );

此时dataSrc参数对应的是一个回调函数,回调函数的参数json就是url请求回来的值,也就是我们之前的{“data”:[{},{},…]},我们通过对json数组进行遍历,做我们该做的处理(此处的示例是把标题做成了有超链接的功能),然后再return处理好的json数组(注意,此处return的是json数组[{},{},{}…..],而不是最外层是{“data”:[{},{},..]}形式的json对象了,否则数据是加载不出来的!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_833170.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs2013开发64位网站和项目设置

最近用mvc写网站玩&#xff0c;需要连接oracle数据库&#xff0c;我电脑是64位系统&#xff0c;就安装了64位的oracle客户端&#xff0c;然而在连接数据库时总报错&#xff0c;折腾了半天&#xff0c; 按照网上的说法&#xff0c;修改这里&#xff0c;根本不起作用&#xff0c…

基于bootstrap(H+)的MVC网站开发之一登录页面

1、bootstrap form 表单自带前端验证功能。不是特殊无需自写前端验证js。 2、表单提交有两种方式&#xff0c;一是form表单中submit提交。二是ajax异步提交。 3、form表单action属性 action 属性规定当提交表单时&#xff0c;向何处发送表单数据。 默认&#xff1a;为当前地…

FTP发布VS2015网站项目

1、前提条件 已经部署了FTP服务。在windows下通过iis创建Ftp服务方法可参考&#xff1a;Windows通过 iis创建FTP服务VS2015 asp.net 项目 2、操作步骤 1、vs菜单中 生成——发布 2、 配置发布文件及发布 创建配置文件 后面的用默认配置即可&#xff0c;点击发布 3、查看…

Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo

目录微信扫码登录介绍开发步骤微信扫码登录示例微信开放文档遇到的问题使用第三方工具实现网站微信扫码登录开发前介绍开发步骤微信扫码登录获取微信用户信息Demo实现流程实现效果实现过程实现源码源码下载微信扫码登录介绍 微信扫码登录是指微信OAuth2.0授权登录让微信用户使…

ffmpeg+nginx+rtmp+web实现视频直播网站

项目简介&#xff1a;视频直播网站由三个部分构成&#xff1a;1.推流端 2.服务器 3.拉流端。在该项目中&#xff0c;推流端用ffmpeg完成&#xff0c;服务器由NGINXRTMP模块完成&#xff0c;拉流端使用VLC完成。 一、开发环境简介&#xff1a; 推流端&#xff1a;系统&#xff1…

网站安装打包 修改app.config[六]

在winform的安装工具中&#xff0c;少不免有一些配置文件要放到app.config去&#xff0c;于是修改也是成了一种需求&#xff01; 无论是修改web.config还是app.config&#xff0c;普遍方式都有两种&#xff0c;用net自带封装的类&#xff0c;或是自定义xml操作。 可参考之前的一…

如何在IIS里对网站限速

不管是ISP或是程序开发者&#xff0c;都可能需要在特定情况下&#xff0c;对使用IIS搭建的Web站点进行限速。 本文就简单说说在IIS中如何限速&#xff0c;因为之前不久&#xff0c;我也象大多数开发者一样&#xff0c;由于程序测试的需要&#xff0c;寻求IIS限速的方法&#xf…

换了无线路由网站打不开的解决方法

一日领导家安装adsl宽带了想用无线上网就购了个dlink双线的无线路由&#xff0c;设置好参数后开始拔号等了很久都没有反应&#xff0c;死活拔不上去。最后没有办法只好另想他法&#xff0c;回到单位一想单位有一个tplink三线无线路由两个换换不就行了。想到这第二天马上拿到领导…

javaweb 网站邮件发送 javaMail

我们这里是使用qq邮箱来演示邮件的发送&#xff0c;需要先对qq邮箱先进行一些设置。在设置-账户我需要开启这个pop3协议&#xff0c;他会生成一个授权码。 常用的邮件传输协议有2种&#xff1a;POP3/SMTP、IMAP/SMTP。 POP和IMAP的区别&#xff1a;在邮箱客户端的操作&#xf…

网站图片延时加载

为什么80%的码农都做不了架构师&#xff1f;>>> 当你看到网页上有很多图片&#xff0c;会不会感觉加载速度超慢&#xff0c;甚至有砸电脑的冲动&#xff1f;其实&#xff0c;我们可以优先加载肉眼能够看到的图片&#xff0c;当用户拖动滚动条时&#xff0c;再加载其…

在线绘图网站

https://www.freedgo.com/

【百度地图API】——国内首款团购网站的地图插件

原文:【百度地图API】——国内首款团购网站的地图插件摘要&#xff1a; 本文介绍了一款应用在团购网站上的地图插件&#xff0c;适用于目前非常流行的团购网站。使用这款地图插件&#xff0c;无需任何编程技术&#xff0c;你就把商家的位置轻松地标注在地图上。 前台地址 http:…

电商网站接入快递查询

网页跳转格式 适用场景&#xff1a;在管理后台中&#xff0c;订单列表点击显示快递详情 和 订单详情页显示快递详情&#xff0c;使用 iframe 嵌入该URL http://www.kuaidi100.com/chaxun?com快递名称&#xff08;可以中文英文&#xff09;&nu快递单号 快递名称&#xff1a…

Python识别网站验证码

http://drops.wooyun.org/tips/6313 Python识别网站验证码 Manning 2015/05/28 10:570x00 识别涉及技术 验证码识别涉及很多方面的内容。入手难度大,但是入手后,可拓展性又非常广泛,可玩性极强,成就感也很足。 验证码图像处理 验证码图像识别技术主要是操作图片内的像素点,通过…

ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码

首先提出一个问题&#xff1a;在做网站开发的时候&#xff0c;用到了验证码来防止恶意提交表单&#xff0c;那么要如何实现当验证码错误时&#xff0c;只是刷新一下验证码&#xff0c;而其它填写的信息不改变&#xff1f; 先说一下为什么有这个需求&#xff1a;以提交注册信息页…

高并发量网站解决方案

2019独角兽企业重金招聘Python工程师标准>>> 一个小型的网站&#xff0c;可以使用最简单的html静态页面就实现了&#xff0c;配合一些图片达到美化效果&#xff0c;所有的页面均存放在一个目录下&#xff0c;这样的网站对系统架构、性能的要求都很简单。随着互联网业…

Docker -- 2 -- 利用docker部署网站和数据库

在Docker – 系统整洁之道 – 1中已经对Docker的一些命令和Docker镜像的使用及操作做了记录。 这次就利用docker进行一次真正的实例使用&#xff0c;使用docker搭建一个简单的答题系统&#xff0c;这个系统是当时做来给网络安全周做手机答题的系统&#xff0c;很简单&#xff…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.1 生意参谋平台概述

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第2章&#xff0c;第2.1节&#xff0c;作者&#xff1a;葛存山 , 耿寿礼&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 第2章 生意参谋——大数据分析利器 淘宝店铺 大数据…

[资源推荐] 必须收藏的两个查找论文和代码实现的网站!

参考自&#xff1a;https://juejin.im/post/5c57f86c51882562002aec03 无论是研究方向是 AI 方面的学生&#xff0c;或者是做机器学习方面的算法工程师&#xff0c;在掌握基础的机器学习相关知识后&#xff0c;都必须掌握搜索论文的技能&#xff0c;特别是研究或者工作领域方向…

再陷风波 Equifax又一门户网站被曝安全漏洞

近日&#xff0c;美信用机构Equifax被证实公司在今年5月到7月期间&#xff0c;遭到黑客攻击&#xff0c;导致约有1.43亿用户数据遭到泄露。现在&#xff0c;又一个Equifax门户网站被指出存在安全协议问题。 据最先发现问题的Hold Security LLC指出&#xff0c;一个来自阿根廷名…