前端控件JQuery Datatables使用——常用功能初始化

本文用于自己记录,忘记时可以用来回顾。点击这里进入JQuerydatatable官网API地址

 JQuery Datatables初始化

个人比较喜欢JQueryDatatables的Bootstrap4风格,所以文章以Bootstrap4风格为例。

JQueryDatatable的初始化很简单,按照官网的举例说明,只要如下几个JS和CSS文件即可:

1、jquery-3.3.1.min.js,当然高版本的JS也是可以的

2、jquery.dataTables.min.js

3、dataTables.bootstrap4.min.js

4、bootstrap.min.css

5、dataTables.bootstrap4.min.css

注意:JS文件的引用顺序很重要,JQuery必须放在第一位,然后dataTables.min.js是第二位,JQuery不能重复引用

既然使用了bootstrap.min.css,那我加入了bootstrap.min.js了,就用Bootstrap框架。忽略文件路径,代码如下图所示:

<script src="~/Scripts/jquery-3.4.1.min.js"></script>
<script src="~/Scripts/datatables/jquery.dataTables.min.js"></script>
<script src="~/Scripts/datatables/dataTables.bootstrap4.min.js"></script>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/Scripts/datatables/dataTables.bootstrap4.min.css" rel="stylesheet" />
<script src="~/Scripts/bootstrap.min.js"></script>

 再加入官网复制来的HTML代码(因为太长,所以这里只列举了一部分),如下图所示:

<table id="example" class="table table-striped table-bordered" style="white-space: nowrap;width:100%;cursor:pointer" cellspacing="0"><thead><tr><th></th><th>Name</th><th>Position</th><th>Office</th><th>Age</th><th>Salary</th></tr></thead><tbody><tr><td></td><td>Tiger Nixon</td><td>System Architect</td><td>Edinburgh</td><td>61</td><td>$320,800</td></tr>.............</tbody></table>

再加入一段基本的JS代码,如下图所示:

<script type="text/javascript">var dtsLanguage = "/Scripts/datatables/datatables_zh-cn.txt"var mytable;$(document).ready(function () {mytable = $('#example').DataTable({pagingType: "full_numbers",language: {url: dtsLanguage}});mytable.on('order.dt search.dt', function () {mytable.column(0, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) {cell.innerHTML = i + 1;});}).draw();});
</script>

变量dtsLanguage存放了一个配置文件地址,配置文件用于更换默认英文的语言配置为中文配置,配置文件的内容如下:

{"buttons": {"pageLength": "显示 %d 行","excel":"<i class='fa fa-file-excel-o'></i>&nbsp;导出Excel"},"decimal": "","emptyTable": "表中数据为空","info": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项","infoEmpty": "显示第 0 至 0 项结果,共 0 项","infoFiltered": "(由 _MAX_ 项结果过滤)","InfoPostFix": "","thousands": ",","lengthMenu": "显示 _MENU_ 项结果","loadingRecords": "载入中...","processing": "处理中...","search": "搜索:","zeroRecords": "没有匹配结果","oPaginate": {"sFirst": "首页","sPrevious": "上一页","sNext": "下一页","sLast": "尾页"},"Aria": {"sSortAscending": ": 以升序排列此列","sSortDescending": ": 以降序排列此列"}
}

pagingType属性是分页类型,用“full_numbers”就可以了, 显示首页,尾页,上一页,下一页,当前页,默认用这个就可以了。

 

以下这段JS代码的目的是显示行号,非必须。具体说明参考官方说明:datatables行号实现

        mytable.on('order.dt search.dt', function () {mytable.column(0, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) {cell.innerHTML = i + 1;});}).draw();

完成上述代码后,就可以看到初步样子了,如下图所示:


扩展功能之Buttons 

JQuery datatables自带一些常用的功能按钮,比如导出EXCEL等。也支持自定义按钮。具体API参考官网Button相关介绍

默认的按钮样式在datatable初始化的JS和CSS基础上再加两个JS和CSS文件即可:

1、dataTables.buttons.min.js

2、buttons.dataTables.min.css

注意:datatable.buttons.min.js必须放在第一位。

因为要跟初始化一样的风格,所以在再引用Bootstrap4风格的JS和CSS文件:

3、buttons.bootstrap4.min.js

4、buttons.bootstrap4.min.css

忽略文件引用路径,代码如下图所示:

@*基础buttons相关*@
<script src="~/Scripts/buttons/dataTables.buttons.min.js"></script>
<script src="~/Scripts/buttons/buttons.bootstrap4.min.js"></script>
<link href="~/Scripts/buttons/buttons.bootstrap4.min.css" rel="stylesheet" />
<link href="~/Scripts/buttons/buttons.dataTables.min.css" rel="stylesheet" />

可见列

支持手动选择表格中哪些列是显示的,哪些列是不可显示的。

引用的JS文件如下图所示:

5、buttons.colVis.min.js

 

打印

支持用浏览器端直接打印页面功能。

引用的JS文件如下图所示:

6、buttons.print.min.js

 

复制

支持复制表格中的数据功能。

引用JS文件如下图所示:

7、buttons.html5.min.js

 

导出PDF

支持导出PDF功能。

引用JS文件如下图所示:

8、pdfmake.min.js

9、vfs_fonts.js

 

导出EXCEL功能

支持导出Excel功能。

引用JS文件如下图所示:

10、jszip.min.js

 

自定义按钮

支持自定义功能按钮。引入基础Buttons的JS和CSS即可。

 

所有JS引用如下图所示:

@*基础buttons相关*@
<script src="~/Scripts/buttons/dataTables.buttons.min.js"></script>
<script src="~/Scripts/buttons/buttons.bootstrap4.min.js"></script>
<link href="~/Scripts/buttons/buttons.bootstrap4.min.css" rel="stylesheet" />
<link href="~/Scripts/buttons/buttons.dataTables.min.css" rel="stylesheet" />@*复制相关*@
<script src="~/Scripts/buttons/buttons.html5.min.js"></script>
@*excel导出相关*@
<script src="~/Scripts/buttons/jszip.min.js"></script>
@*打印相关*@
<script src="~/Scripts/buttons/buttons.print.min.js"></script>
@*可见列相关*@
<script src="~/Scripts/buttons/buttons.colVis.min.js"></script>
@*导出PDF相关*@
<script src="~/Scripts/buttons/pdfmake.min.js"></script>
<script src="~/Scripts/buttons/vfs_fonts.js"></script>

将datables相关的JS代码修改下,如下图所示:

        mytable = $('#example').DataTable({dom: 'Bfrtip',lengthChange: false,pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},],language: {url: dtsLanguage}});

此时再次运行程序如下图所示:

 

 


扩展功能之Select 

到目前为止表格中任意行是不能被选中点亮的。也无法触发任何点击事件。扩展功能Select提供对这个操作的支持。具体API参考官网Select介绍

默认选中样式只要引用两个JS和CSS文件就可以了:

 1、dataTables.select.min.js

 2、select.dataTables.min.css

因为要用Booststrap4风格,就必须再引用一个CSS文件:

3、select.bootstrap4.min.css

 

忽略文件引用路径,如下图所示:

@*select相关*@
<script src="~/Scripts/select/dataTables.select.min.js"></script>
<link href="~/Scripts/select/select.dataTables.min.css" rel="stylesheet" />
<link href="~/Scripts/select/select.bootstrap4.min.css" rel="stylesheet" />

 

select的初始化很简单,只需要加一句代码就可以了:select:true。修改datatable相关的JS代码如下图所示:

        mytable = $('#example').DataTable({dom: 'Bfrtip',select:true,pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},],language: {url: dtsLanguage}});

这时运行程序,效果如下图所示:

如需要多行选择,修改代码如下图所示:

            select: {style: 'multi'},

运行效果如下图所示:

 

如果需要在把第一列变成选择框,可以修改代码如下图所示:

        mytable = $('#example').DataTable({dom: 'Bfrtip',columnDefs: [{orderable: false,className: 'select-checkbox',targets: 0}],select: {style: 'multi',selector: 'td:first-child'},pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},],language: {url: dtsLanguage}});

使用效果如下图所示:

配置select的中文提示:在配置文件中修改关于select的提示,此时配置文件中的内容如下图所示:

                         

 

再次运行可以看到,已经变成中文提示:

 

表格全选和全部取消 

select提供跟button先关的全选和全部取消功能,修改datatable相关的JS代码如下:

mytable = $('#example').DataTable({dom: 'Bfrtip',columnDefs: [{orderable: false,className: 'select-checkbox',targets: 0}],select: {style: 'multi',selector: 'td:first-child'},pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},'selectAll',//全选'selectNone',//全部取消],language: {url: dtsLanguage}});

运行效果如下图所示:

 


扩展功能之ColReorder

datatables可以手动对列进行移动排序。具体API请查看官网对ColReorder的介绍

Bootstrap风格的ColReorder样式只需要引用两个JS和CSS文件就可以了:

1、dataTables.colReorder.min.js

2、colReorder.bootstrap4.min.css

忽略文件引用路径,如下图所示:

@*ColReorder相关*@
<script src="~/Scripts/ColReorder/dataTables.colReorder.min.js"></script>
<link href="~/Scripts/ColReorder/colReorder.bootstrap4.min.css" rel="stylesheet" />

ColReorder的初始化也很简单,只要加一句代码就可以了:colReorder: true 。

修改datatables相关的JS代码如下图所示:

mytable = $('#example').DataTable({dom: 'Bfrtip',colReorder: true,//初始化ColReordercolumnDefs: [{orderable: false,className: 'select-checkbox',targets: 0}],select: {style: 'multi',selector: 'td:first-child'},pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},'selectAll','selectNone',],language: {url: dtsLanguage}});

此刻便可以用鼠标点击拖动任何一列到任何位置:

拖动后的效果: 

 


扩展功能之FixedColumns 

 datatables提供对固定列的支持。具体API参考官网对fixedcolumns详细说明

Bootstrap风格的FixedColumns只需要引用两个JS和CSS文件即可:

1、dataTables.fixedColumns.min.js

2、fixedColumns.bootstrap4.min.css 

忽略文件路径,如下图所示:

@*fixdeCol*@
<script src="~/Scripts/fixedcol/dataTables.fixedColumns.min.js"></script>
<link href="~/Scripts/fixedcol/fixedColumns.bootstrap4.min.css" rel="stylesheet" />

 

FixedColumns的初始化也是很多简单的,只需要一句代码即可,fixedColumns: true 

修改datatable的JS代码如下,这里为了显示固定效果将datatable的长和宽缩小了,并去掉了Select相关功能,从目前的结果来看,select 和 fixedColumns有一定程度上的不兼容。

        mytable = $('#example').DataTable({dom: 'Bfrtip',colReorder: true,scrollY: "300px",scrollX: true,scrollCollapse: true,fixedColumns: true,pagingType: "full_numbers",buttons: ['pageLength','colvis','copy','print','pdf','excel',{text: "自定义按钮一",className: "btn",action: function (e, table, node, config) {}},'selectAll','selectNone',],language: {url: dtsLanguage}});

运行效果如下图所示,,可以看到第一列已经固定了:

                           

 


本文将会持续更新。。。。。 

 

 

 

 

 

 

 

 

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

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

相关文章

一款轻量级的消息提示插件 —— toastr

toastr是一款轻量级的消息提示插件&#xff0c;基于JQuery&#xff0c;使用简单方便&#xff0c;外观大气漂亮。 点击这里进入toastr在线调试使用 点击这里进入toastr官方网站 使用效果如下图所示&#xff1a; 插件使用需要引用的JS和CSS文件如下图所示&#xff1a; 各版…

《Spring Recipes》第二章笔记:Creating Beans by Invokin...

2019独角兽企业重金招聘Python工程师标准>>> 《Spring Recipes》第二章笔记&#xff1a;Creating Beans by Invoking an Instance Factory Method 问题 用户希望使用工厂类来实例化bean。 解决方案 Spring的bean元素中提供了factory-bean属性来配置工厂类&#xff0…

JQuery Datatables editor进行增删改查操作(一)

背景 editor作为Datatables的插件之一&#xff0c;功能十分强大&#xff0c;有全行编辑模式、泡泡编辑模式、行内编辑模式。个人觉得&#xff0c;除了泡泡编辑模式外&#xff0c;其他两种模式功能在实际项目中会经常使用到&#xff0c;泡泡模式提供了模态框可以对表格内的数据…

将C#中DateTime类型转化为JavaScript中的Date类型

将C#中的DateTime类型数据返回到前端页面时&#xff0c;显示的样子如下图所示&#xff1a; 可以用JS前端操作转化成JS的Date格式&#xff0c;直接上代码 &#xff1a; // 对Date的扩展&#xff0c;将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季…

FusionCharts V3图表导出图片和PDF属性说明

百闻不如一见&#xff0c;狠狠点击&#xff0c;快快下载&#xff1a;&#xff08;演示文档有错误&#xff0c;不提供下载了。待新的演示文档出来。&#xff09; 许多朋友说上面的DEMO用不了。fusioncharts官方的演示非常不错&#xff0c;就是来不及整理&#xff0c;各位大侠们…

JQuery Datatables editor进行增删改查操作(二)

背景 上一篇对editor进行了一个基本功能的初始化操作演示&#xff0c;本文进一步了解下editor在上一篇文章功能的基础上添加了部分常用基本功能。 整体界面如下图所示&#xff1a; 新增界面&#xff1a; 新增界面增加了单选按钮&#xff0c;下拉框&#xff0c;和时间选择器&am…

《统一沟通-微软-实战》-6-部署-2-中介服务器-5-语音路由-语音策略

创建语音策略和配置 PSTN 用法记录 如果要创建新的语音策略&#xff0c;请执行以下步骤。如果要编辑语音策略&#xff0c;请参阅修改语音策略和配置 PSTN 用法记录中的相关步骤。 注意&#xff1a; 每个语音策略必须至少具有一条关联的 PSTN 用法记录。要查看企业语音部署中提…

JQuery Datatables editor 行内编辑功能

背景 ERP软件中&#xff0c;能进行行内编辑的表单是常用功能&#xff0c;行内编辑功能能让用户在表格中自己填写、修改、删除数据或者选择数据&#xff0c;可以说表格控件是ERP软件的核心控件&#xff0c;而行内编辑功能是核心中的关键。 本文会继续接着上一篇文章的介绍继续…

Shell图形化监控网络流量

shell图形化监控网络流量 网络流量的监控工具有很多&#xff0c;如&#xff1a;Mrtg、Cacti、Zabbix等等&#xff0c;他们都有着各自的特点&#xff0c;不同的侧重&#xff0c;只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外&#xff0c;还有Nagios这样的监控…

JQuery Datatables editor 在编辑前刷新数据

背景 在同一时间&#xff0c;可能很多人在编辑修改同一数据&#xff0c;这会导致在一个人还在在修改的过程中另一人在完成了修改并保存了数据。editor在button插件的扩展中可以有效的缓解这个问题&#xff1a;自定义一个编辑按钮&#xff0c;此编辑按钮实现 点击按钮后&#x…

JQuery Datatables 显示行的附加信息

点击这里查看datatables官网介绍 点击这里查看datatables中文网介绍 效果如下图所示&#xff1a; 点击首列调用ajax返回数据&#xff0c;并展开明细行如下图所示&#xff1a; CSS代码&#xff1a; td.details-control {background: url(../../scripts/datatables-1.10.19/ima…

初涉c#设计模式-Iterator Pattern

一、迭代器模式简介(Brief Introduction) 迭代器模式(Iterator Pattern)&#xff0c;提供一种方法顺序访问一个聚合对象中元素&#xff0c;而不暴露改集合对象的内部表示。 Provide a way to access the elements of an aggregate object sequentially without exposing its un…

Buttons——CSS按钮样式库

点击进入查看官网说明 不同颜色按钮&#xff1a; <button class"button button-3d button-primary">button1</button><button class"button button-3d button-action">button2</button><button class"button button-3d b…

Win10中如何找到并打开SqlServer2008 R2配置管理器

首先Win R &#xff0c;打开运行窗口&#xff0c;然后输入&#xff1a; SQLServerManager10.msc

机器学习中的相似性度量

在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement)&#xff0c;这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究&#xff0c;甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。 本文…

EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中

没想到什么好的精准的办法&#xff0c;持续的报错&#xff0c;然后定位报错很是头疼。我目前感觉较快方式有两种&#xff0c;如果有更好的方式&#xff0c;请大家指教。 一、先在数据库中修改表的结构属性&#xff0c;再删除edmx文件中对应的实体类模型&#xff0c;然后再是“从…

HTML5 FileReader API 测试(一)

2019独角兽企业重金招聘Python工程师标准>>> 参考文章 html5之FileReader接口 http://zhangyaochun.iteye.com/blog/1487900 1、FileReader接口的作用&#xff1a; 用来把文件读入内存&#xff0c;并且读取文件中的数据。 2、支持情况 FF3.6| Chrome6 Js代码 /*…

Bootstrap模态框居中显示

Bootstrap默认的模态框不是居中显示的&#xff0c;需要稍微修改下源代码&#xff1a; 1、打开源码bootstrap.js&#xff0c;在里面找到如下代码&#xff1a; 2、在上述代码段落下面增加居中的代码即可&#xff1a; //使弹出框居中。。。var $modal_dialog $(this.$element[0]…

Bootstrap模态框显示时有阴影遮罩层

如下图所示&#xff1a; 有遮罩层在&#xff0c;无法进行任何操作&#xff0c;只需修改默认 z-index 属性即可&#xff1a; .modal-backdrop{z-index:0;}

JQuery Datatables 在Bootstrap tab中列名无法对齐的问题

如下图所示&#xff1a; 增加一句代码即可&#xff1a; $(a[data-toggle"tab"]).on(shown.bs.tab, function (e) {//当切换tab时&#xff0c;强制重新计算列宽$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();});