bootstrap 分页表格插件
找了两个table的插件,一个是bootstrap table ,另一个是bootstrap-paginator
这里只介绍 bootstrap table 插件 使用及简单案例
文档介绍:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/
使用方法详解:
其他案例解析:http://www.jb51.net/article/79033.htm
简单的html案例(使用data-*来获取数据):http://www.jq22.com/yanshi467
1. 引入js、css文件
<link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"> <link href="http://cdn.bootcss.com/bootstrap-table/1.11.0/bootstrap-table.min.css"> <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script> <script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap-table/1.11.0/bootstrap-table.min.js"></script> <script src="http://cdn.bootcss.com/bootstrap-table/1.11.0/locale/bootstrap-table-zh-CN.min.js"></script>
2.table数据填充
bootStrap table获取数据有两种方式,一是通过table 的data-url属性指定数据源,二是通过JavaScript初始化表格时指定url来获取数据*
注意:使用data-toggle="table"的话,js操作就会失效,反之生效
<table data-toggle="table"> <thead> ... </thead> </table> $('#table').bootstrapTable({ url: 'data.json' });
3. js获取数据的案例及释义
<div class="panel panel-default"> <div class="panel-body table-responsive"> <div class="query-div" id="toolbar"> <form class="form-inline" role="form" id="query_form"> <div class="form-group query-form-group"> <label for="status">状态</label> <select class="form-control" id="with_appr_status" <option value="">全部</option> <option value="S1">待处理</option> <option value="S2">已处理</option> </select> </div> <div class="form-group query-form-group"> <button type="button" class="btn btn-default" id="with_query">查询</button> </div> </form> </div> <table id="query_results" class="table table-hover"> <thead> <tr> <th data-field="code">编号</th> <th data-field="time">申请时间</th> <th data-field="status" data-formatter="formatStatus">提现状态</th> <th data-field="remark">备注</th> </tr> </thead> </table> </div> </div>
//注意
//1. contentType: "application/x-www-form-urlencoded" 想要后台使用struts来接受数据,或者使用对象.属性的方法获取,需要配置这个form,默认是“json”
//2. pageNo 第几页,需要使用“Math.ceil(params.offset/params.limit) + 1”来计算,params.pageNumber一直获取的是第一页
loadData();//默认查询
function loadData(){
//表格id
$('#query_results').bootstrapTable({ url: '/test', //请求后台的URL(*) method: 'post', //请求方式(*) contentType: "application/x-www-form-urlencoded",//需要设置为这个参数,后台才能通过对象获取值,这里要注意 dataType: "json",//期待返回数据类型 toolbar: '#toolbar', //工具按钮用哪个容器 toolbarAlign: "left",//工具栏对齐方式 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) //sortable: false, //是否启用排序 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 5, //每页的记录行数(*) pageList: [5, 10, 25, 50, 100], //可供选择的每页的行数(*) sortOrder: "asc", //排序方式 search: false,//搜索功能 buttonsAlign: "left",//按钮对齐方式 //showColumns: true,//列选择按钮 strictSearch: true, clickToSelect: true, //是否启用点击选中行 //height: 460, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId: "id", //每一行的唯一标识,一般为主键列 cardView: false, //是否显示详细视图 detailView: false, //是否显示父子表 queryParamsType: 'limit', queryParams: queryParams }); //默认加载时携带参数 function queryParams(params) { var params = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 pageNo : Math.ceil(params.offset/params.limit) + 1, //页码 pageSize : params.limit, //页面大小 "status" : $("#status").val() }; return params; }
}
//点击“查询”按钮
$("#query").bind("click",function(){
//两种方式:
//1.直接刷新 $('#query_results').bootstrapTable("refresh", {});
//2. 先销毁数据,再次查询,如下
$("#query_results").bootstrapTable('destroy');
loadPageData();
});
//表格列的格式化翻译,对应data-formatter="formatStatus"
function formatStatus(value, row, index){
if(value == 'S1'){
return "待处理";
}else{
return "已处理"
}
}