Datatables 行数据删除、行上升、行下降功能演示

Datatables 是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

 

官方网站:http://www.datatables.net

 

最近在研究Datatables 的使用,其中包括行删除,行编辑,行上升,行下降。Google了一把,没有发现太多有用的资料,索性自己写一个简单的Demo,为了记录,也为了方便DataTables 的粉丝。

 

 首先上HTML 结构(其中引入了jquery, Boostrap 和 Font-Awesome 图标): 

Html代码   收藏代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta http-equiv="Content-type" content="text/html; charset=UTF-8">  
  5.     <meta name="viewport" content="width=device-width,initial-scale=1">  
  6.   
  7.     <title>DataTables Demo - Row up and down</title>  
  8.   
  9.     <link rel="stylesheet" type="text/css" href="bootstrap-3.3.2/css/bootstrap.min.css">  
  10.     <link rel="stylesheet" type="text/css" href="font-awesome-4.3.0/css/font-awesome.min.css">  
  11.     <link rel="stylesheet" type="text/css" href="DataTables-1.10.5/css/jquery.dataTables.css">  
  12.   
  13.     <script type="text/javascript" src="jquery-1.11.2.min.js"></script>  
  14.     <script type="text/javascript" src="bootstrap-3.3.2/js/bootstrap.min.js"></script>  
  15.     <script type="text/javascript" src="DataTables-1.10.5/js/jquery.dataTables.min.js"></script>  
  16.     <script type="text/javascript" src="demo.js"></script>  
  17.   
  18. </head>  
  19. <body>  
  20.     <div class="container">  
  21.         <div class="row">  
  22.             <div class="col-md-12">  
  23.                 <table id="demo" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">  
  24.                     <thead>  
  25.                         <tr>  
  26.                             <th>姓名</th>  
  27.                             <th>职位</th>  
  28.                             <th>办公室</th>  
  29.                             <th>薪水</th>  
  30.                             <th>操作</th>  
  31.                         </tr>  
  32.                     </thead>  
  33.                     <tbody>  
  34.                         <tr>  
  35.                             <td>张三</td>  
  36.                             <td>System Architect</td>  
  37.                             <td>Edinburgh</td>  
  38.                             <td>$320,800</td>  
  39.                             <td></td>  
  40.                         </tr>  
  41.                         <tr>  
  42.                             <td>李四</td>  
  43.                             <td>Accountant</td>  
  44.                             <td>Tokyo</td>  
  45.                             <td>$170,750</td>  
  46.                             <td></td>  
  47.                         </tr>  
  48.                         <tr>  
  49.                             <td>王五</td>  
  50.                             <td>Junior Technical Author</td>  
  51.                             <td>San Francisco</td>  
  52.                             <td>$86,000</td>  
  53.                             <td></td>  
  54.                         </tr>  
  55.                         <tr>  
  56.                             <td>赵六</td>  
  57.                             <td>Senior Javascript Developer</td>  
  58.                             <td>Edinburgh</td>  
  59.                             <td>$433,060</td>  
  60.                             <td></td>  
  61.                         </tr>  
  62.                         <tr>  
  63.                             <td>小明</td>  
  64.                             <td>Accountant</td>  
  65.                             <td>Tokyo</td>  
  66.                             <td>$162,700</td>  
  67.                             <td></td>  
  68.                         </tr>  
  69.                         <tr>  
  70.                             <td>小丽</td>  
  71.                             <td>Integration Specialist</td>  
  72.                             <td>New York</td>  
  73.                             <td>$372,000</td>  
  74.                             <td></td>  
  75.                         </tr>  
  76.                         <tr>  
  77.                             <td>小春春</td>  
  78.                             <td>Sales Assistant</td>  
  79.                             <td>San Francisco</td>  
  80.                             <td>$137,500</td>  
  81.                             <td></td>  
  82.                         </tr>  
  83.   
  84.                     </tbody>  
  85.                 </table>  
  86.             </div>  
  87.         </div>  
  88.     </div>  
  89. </body>  
  90. </html>  

 

再就是JS 文件的写法:

Js代码   收藏代码
  1. $(document).ready(function() {  
  2.   
  3.     $('#demo').DataTable({  
  4.         "paging"false,  
  5.         "ordering"false,  
  6.         "info"false,  
  7.         "searching"false,  
  8.         "columnDefs": [{  
  9.             // 定义操作列  
  10.             "targets": 4,  
  11.             "data"null,  
  12.             "render"function(data, type, row) {  
  13.                 var html = '<a href="javascript:void(0);" class="delete btn btn-default btn-xs"><i class="fa fa-times"></i> 删除</a>'  
  14.                 html += ' <a href="javascript:void(0);" class="up btn btn-default btn-xs"><i class="fa fa-arrow-up"></i> 上升</a>'  
  15.                 html += ' <a href="javascript:void(0);" class="down btn btn-default btn-xs"><i class="fa fa-arrow-down"></i> 下降</a>'  
  16.                 return html;  
  17.             }  
  18.         }],  
  19.         language: {  
  20.             "processing""处理中...",  
  21.             "lengthMenu""显示 _MENU_ 项结果",  
  22.             "zeroRecords""没有匹配结果",  
  23.             "info""显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",  
  24.             "infoEmpty""显示第 0 至 0 项结果,共 0 项",  
  25.             "infoFiltered""(由 _MAX_ 项结果过滤)",  
  26.             "infoPostFix""",  
  27.             "search""搜索:",  
  28.             "url""",  
  29.             "emptyTable""表中数据为空",  
  30.             "loadingRecords""载入中...",  
  31.             "infoThousands"",",  
  32.             "paginate": {  
  33.                 "first""首页",  
  34.                 "previous""上页",  
  35.                 "next""下页",  
  36.                 "last""末页"  
  37.             },  
  38.             "aria": {  
  39.                 "sortAscending"": 以升序排列此列",  
  40.                 "sortDescending"": 以降序排列此列"  
  41.             }  
  42.         }  
  43.     });  
  44.   
  45.     // 初始化刪除按钮  
  46.     $('#demo tbody').on('click''a.delete'function(e) {  
  47.         e.preventDefault();  
  48.   
  49.         if (confirm("确定要删除该属性?")) {  
  50.             var table = $('#demo').DataTable();  
  51.             table.row($(this).parents('tr')).remove().draw();  
  52.         }  
  53.   
  54.     });  
  55.   
  56.     // 初始化上升按钮  
  57.     $('#demo tbody').on('click''a.up'function(e) {  
  58.         e.preventDefault();  
  59.         var table = $('#demo').DataTable();  
  60.         var index = table.row($(this).parents('tr')).index();  
  61.         if ((index - 1) >= 0) {  
  62.             var data = table.data();  
  63.             table.clear();  
  64.             data.splice((index - 1), 0, data.splice(index, 1)[0]);  
  65.             table.rows.add(data).draw();  
  66.         } else {  
  67.             alert("亲,已经到顶了");  
  68.         }  
  69.   
  70.     });  
  71.   
  72.     // 初始化下降按钮  
  73.     $('#demo tbody').on('click''a.down'function(e) {  
  74.         e.preventDefault();  
  75.   
  76.         var table = $('#demo').DataTable();  
  77.         var index = table.row($(this).parents('tr')).index();  
  78.         var max = table.rows().data().length;  
  79.         if ((index + 1) < max) {  
  80.             var data = table.data();  
  81.             table.clear();  
  82.             data.splice((index + 1), 0, data.splice(index, 1)[0]);  
  83.             table.rows.add(data).draw();  
  84.         } else {  
  85.             alert("亲,已经到底了");  
  86.         }  
  87.     });  
  88. });  

 

最后来一张效果图片:


 DataTables Demo

 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值