基于bootstrap3的 表格和分页的插件
如题
样式呢就是bootstrap3 的
功能呢就是实现表格和分页
(以上废话)
本来是自己没事儿写的一个js插件,曾经搁浅了一阵子,但最近由于公司项目的原因也需要这样的一个插件,所以就捡起来做了个可以用的版本
首先看下实现效果
上面数据 下面分页
使用方法
1 导入bootstrap的css
<link rel="stylesheet" href="css/v3/bootstrap.min.css">
2 导入jquery
<script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>
3 导入表格分页插件 lTable.js
<script src="js/lTable.js" type="text/javascript"></script>
4 添加html标签 并对id 赋值
<!-- 表格 --> <div id="d"></div> <!-- 分页 --> <div id="u"></div>
5 获取数据
这里通过ajax获取json文件的模拟数据
initTable(data)为初始化表格和分页方法
$.ajax({ url:"json/data.json", type:"GET", dataType: "json", success:function(data){ initTable(data); }, error:function(e){ alert("数据获取错误"); } });
6 初始化表格
在初始化方法中 首先初始化表格
var obj=data; var myTable=$.lTable( '#d', { data:obj.list //json数据 ,title:["userid","username","password","userrolename","status","<button onclick='updF(id)'>修改</button> <button onclick='delF(id)'>删除</button>"] //标题对应字段 ,name:["用户id","用户名称","密码","权限名称","状态","_opt"] ,tid:"userid" ,checkBox:"userid" } );
代码说明
6.1初始化方法
$.lTable('id',{data,title,name,tid,chechBox});
6.2属性说明
id:页面选择的填充块
data:页面显示的json数据
title:表格每一列与数据对应的字段
name:表格第一行显示字段
tid:每行对应的键值(可省略)
checkBox:复选框对应的value(可省略)
6.3复选框说明
当初始化添加 chechBox属性时 激活
复选框 name="ids"
获取已选列方法: $.lTable.getCheckboxIds() 返回值例 "1,2,3,4"
6.4操作咧说明
当属性name=_opt时 表格头自动换位"操作"
对应属性title 可添加按钮等操作
例:"<button onclick='updF(id)'>修改</button>"
点击方法为updF() 参数id 为属性tid对应字段
7 初始化分页
然后是分页部分
$.lPaging( '#u', //对应id { pageNumber:obj.pageNumber //当前页数 ,totalPage:obj.totalPage //总页数 ,countSize:5 //分页显示个数 (可省略) ,count:obj.count ,inputSearch:true//显示查询输入框 ,onPageChange: function (num) { initPage(num,pageSize,dataUrl); } } );
代码说明
7.1初始化方法
$.lPaging('id',{pageNumber,totalPage,countSize,count,onPageChange(num),inputSearch});
7.2属性方法说明
id:页面选择的填充块
pageNumber:当前页数
totalPage:总页数
countSize:分页显示个数(可省略 默认5)
count:数据总数
onPageChange(num):返回点击事件
inputSearch: 是否显示查询输入框 boolean 默认false
getInputVal():返回输入框内数字
8 上整篇代码
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <title></title> 7 <link rel="stylesheet" href="css/v3/bootstrap.min.css"> 8 </head> 9 <body> 10 11 <!-- 表格 --> 12 <div id="d"></div> 13 14 <!-- 分页 --> 15 <div id="u"></div> 16 17 </body> 18 19 <script src="js/jquery-1.10.1.min.js" type="text/javascript"></script> 20 <script src="js/lTable.js" type="text/javascript"></script> 21 <script> 22 var pageSize=10; 23 var myTable; 24 var dataUrl=""; 25 //初始化页面 26 initPage(1,pageSize,""); 27 //ajax获取数据 28 function initPage(num,ps,url){ 29 30 $.ajax({ 31 url:"json/data.json", 32 type:"GET", 33 34 //type:"POST", 35 //data:"userinfoVO.pageid="+num+"&userinfoVO.pagecount="+ps, 36 dataType: "json", 37 success:function(data){ 38 initTable(data); 39 }, 40 error:function(e){ 41 console.log(e) 42 alert("数据获取错误"); 43 } 44 }); 45 } 46 47 //初始化table和分页数据 48 function initTable(data){ 49 //var obj = eval("("+data+")"); 50 var obj=data; 51 //table 52 myTable=$.lTable( 53 '#d', 54 { 55 data:obj.list //json数据 56 ,title:["userid","username","password","userrolename","status","<button onclick='updF(id)'>修改</button> <button onclick='delF(id)'>删除</button>"] //标题对应字段 57 ,name:["用户id","用户名称","密码","权限名称","状态","_opt"] 58 ,tid:"userid" 59 ,checkBox:"userid" 60 } 61 ); 62 //myTable.getCheckboxIds(); //获取checkbox选中的值 63 //分页 64 $.lPaging( 65 '#u', //对应id 66 { 67 pageNumber:obj.pageNumber //当前页数 68 ,totalPage:obj.totalPage //总页数 69 ,countSize:5 //分页显示个数 (可省略) 70 ,count:obj.count 71 ,inputSearch:true//显示查询输入框 72 ,onPageChange: function (num) { 73 initPage(num,pageSize,dataUrl); 74 } 75 } 76 ); 77 } 78 79 //修改方法 80 function updF(id){ 81 alert("修改:"+id); 82 } 83 84 //删除方法 85 function delF(id){ 86 alert("删除:"+id); 87 } 88 89 </script> 90 </html>