JQuery DataTables显示行号及连续自动编号
来源:互联网 发布:贵金属模拟软件 编辑:程序博客网 时间:2024/06/05 16:20
在建立表格的时候,为了方便阅读,我们可能需要简历 行号列,JQuery DataTables 如何自动创建行号列呐?
首先推一篇 官网博文:http://datatables.club/blog/2016/07/10/add-index-for-table.html
其实官网好多实例,理解要比我深,我还是停留在参考官网文档,进行自己修改的层面。
首先我们介绍一下从 服务端获取数据,而后使用 JQuery DataTables 自动编号。下面是几种思路:
1. 服务端模式下客户端 编号
代码:
dtconfig.ajax = { url: "/Action/GetNewLouPanList.ashx", type: "POST", };dtconfig.columns = [ { name: "Checkbox","searchable": false, "orderable": false }, //此处要预留一列给编号,视图同样也要给编号预留一列 { name: "SerialNum", data: "Id", "searchable": false, "orderable": false }, { name: "Id", data: "Id" }, //... ]; var page_dt = $('#datatable').DataTable(dtconfig);//初始化 DataTables// .draw.dt 是 DataTables 的绘制事件,监听绘制事件,绘制的时候给 datatales 编号。 page_dt.on('draw.dt', function () { //给第一列编号 page_dt.column(1, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) { cell.innerHTML = i + 1; }); });
视图:
<table id="datatable" class="table table-striped _icheck" style="width:100%;"> <thead> <tr class="headings"> <th>选中</th> <th>行号</th> <th>问题ID</th> <!--...此处省略其他列,大家懂就可以了--> </tr> </thead> <tbody></tbody> </table>
效果:
备注: 服务端模式下,大家一定要 监听 draw.dt(绘制事件),如果模仿的英文文档,监听 order.dt search.dt 会导致请求两次的。不要监听 order.dt search.dt(搜索,排序事件)
有的同学,可能在官网上看到的是这篇博文:https://datatables.net/examples/api/counter_columns.html, 这篇博文是用于 客户端模式下的。
没错! JQuery DataTables 插件的中英文档,我已经翻了好多遍了,常用的,我都翻过了,实例我也都亲测过了,写出来的这些都是我爬过的坑。
2. 分页连续序号
还有一种需求,那就是我们分页之后, 页码需要连续, 那么大家可以参考 :我上面发的链接中的博文,那里面有介绍,本篇博文侧重介绍 单页 编号。
//添加序号//不管是排序,还是分页,还是搜索最后都会重画,这里监听draw事件即可table.on('draw.dt',function() { table.column(0, { search: 'applied', order: 'applied' }).nodes().each(function(cell, i) { //i 从0开始,所以这里先加1 i = i+1; //服务器模式下获取分页信息,使用 DT 提供的 API 直接获取分页信息 var page = table.page.info(); //当前第几页,从0开始 var pageno = page.page; //每页数据 var length = page.length; //行号等于 页数*每页数据长度+行号 var columnIndex = (i+pageno*length); cell.innerHTML = columnIndex; }); });
3. 服务端编号
服务端编号,没有什么好说的,就是 直接在服务端编号,发送到客户端,客户端直接显示就可以了。
4. 客户端模式下自动编号
我们使用客户端模式时(数据来源于本地),代码如下:
官网文档:https://datatables.net/examples/api/counter_columns.html
$(document).ready(function() { var t = $('#example').DataTable( { "columnDefs": [ { "searchable": false, "orderable": false, "targets": 0 } ], "order": [[ 1, 'asc' ]] } ); t.on( 'order.dt search.dt', function () { t.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) { cell.innerHTML = i+1; } ); } ).draw();} );
- JQuery DataTables显示行号及连续自动编号
- vim显示行号及自动缩进
- vim自动显示行号
- DataGrid控件自动显示行号
- Flex4 DataGrid自动显示行号
- JQuery datatables 标题和内容居中显示
- 显示行号及配置文件Vimrc
- FLEX实践—Datagrid保存列模板及自动显示行号
- vc6.0助手简介及vc行号显示、自动注释工具
- jquery dataTables
- Jquery-dataTables
- jquery datatables
- jquery datatables
- jQuery DataTables
- jquery datatables
- JQuery DataTables
- vim添加显示行号,自动缩进功能
- dataGridView自动生成行号1234.....显示
- Python高级编程-如何快速找到多个字典中的公工键(key)
- Hibernate多对一关系映射
- ubuntu16.04 failed to install sougoupingying
- ===注册时使用消息队列 发送邮件。遇到的【环境问题】总结。==比代码问题难找!!!
- MySQL 线上删1T大表记录
- JQuery DataTables显示行号及连续自动编号
- 动态规划--最大子矩阵和
- Imageloader基本使用
- 数据结构实验之二叉树八:(中序后序)求二叉树的深度
- Count the Tetris HDU
- NS2源码重新编译
- python 正则表达式及django
- Python高级编程-如何对迭代器进行切片操作?
- qt嵌入外部程序的几种情况源码