bootstrap table php,bootstrap table轻松实现数据表格

138f4515e91ecb2086ba07ea027bc098.png

在使用bootstrap table时可能在很多时候回用的表格来显示数据,如果自己写那肯定没问题,但是数据展示出来就麻烦多了,然而bootstrap table 封装了一套完善的数据表格组件,把从后台请求的数据很容易就展示出来了,bootstrap table有两种实现方式,一种是通过table写定在html里面,另一种是通过js实现,js实现比较灵活,所以这里采用js方式,下面来看实现。

9525bbc25fa4f9da36616b8770890d32.png

客户端

必须先引入相应的css、js等文件

Bootstrap-Table
添加记录

$(function() {

//根据窗口调整表格高度

$(window).resize(function() {

$('#mytab').bootstrapTable('resetView', {

height: tableHeight()

})

})

$('#mytab').bootstrapTable({

url: "",//数据源

dataField: "rows",//服务端返回数据键值 就是说记录放的键值是rows,分页时使用总记录数的键值为total

height: tableHeight(),//高度调整

search: true,//是否搜索

pagination: true,//是否分页

pageSize: 20,//单页记录数

pageList: [5, 10, 20, 50],//分页步进值

sidePagination: "server",//服务端分页

contentType: "application/x-www-form-urlencoded",//请求数据内容格式 默认是 application/json 自己根据格式自行服务端处理

dataType: "json",//期待返回数据类型

method: "post",//请求方式

searchAlign: "left",//查询框对齐方式

queryParamsType: "limit",//查询参数组织方式

queryParams: function getParams(params) {

//params obj

params.other = "otherInfo";

return params;

},

searchOnEnterKey: false,//回车搜索

showRefresh: true,//刷新按钮

showColumns: true,//列选择按钮

buttonsAlign: "left",//按钮对齐方式

toolbar: "#toolbar",//指定工具栏

toolbarAlign: "right",//工具栏对齐方式

columns: [

{

title: "全选",

field: "select",

checkbox: true,

width: 20,//宽度

align: "center",//水平

valign: "middle"//垂直

},

{

title: "ID",//标题

field: "id",//键名

sortable: true,//是否可排序

order: "desc"//默认排序方式

},

{

field: "name",

title: "NAME",

sortable: true,

titleTooltip: "this is name"

},

{

field: "age",

title: "AGE",

sortable: true,

},

{

field: "info",

title: "INFO[using-formatter]",

formatter: 'infoFormatter',//对本列数据做格式化

}

],

onClickRow: function(row, $element) {

//$element是当前tr的jquery对象

$element.css("background-color", "green");

},//单击row事件

locale: "zh-CN", //中文支持

detailView: false, //是否显示详情折叠

detailFormatter: function(index, row, element) {

var html = '';

$.each(row, function(key, val){

html += "

" + key + ":" + val + "

"

});

return html;

}

});

$("#addRecord").click(function(){

alert("name:" + $("#name").val() + " age:" +$("#age").val());

});

})

function tableHeight() {

return $(window).height() - 50;

}

/**

* 列的格式化函数 在数据从服务端返回装载前进行处理

* @param {[type]} value [description]

* @param {[type]} row [description]

* @param {[type]} index [description]

* @return {[type]} [description]

*/

function infoFormatter(value, row, index)

{

return "id:" + row.id + " name:" + row.name + " age:" + row.age;

}

服务端:只需在接到请求时返回json数组就行了,是json数组哦,不是单个对象,不然就数据展示不出来。

注意bootstrap table 可以前端分页也可以后端分页,这里我们使用的是后端分页,后端分页时需返回含有

total:总记录数 这个键值好像是固定的,我看文档没找到可以修改成别的

rows: 记录集合 键值可以修改 dataField 自己定义成自己想要的就好{

"total":200,

"rows":[

{"id":1, "name":"sallency", "age": 26},

{"id":1, "name":"sallency", "age": 26},

{"id":1, "name":"sallency", "age": 26},

{"id":1, "name":"sallency", "age": 26},

{"id":1, "name":"sallency", "age": 26}]

}

但是这可能会有请求时数据赋值不了的情况,那时你就会干着急了,下面还可以使用如下方式进行数据渲染。这个效果和上面一个不一样,这里就不上图了。同样第一步要引入官网所要求的的css/js等文件。var $table = $("#product");

$table.bootstrapTable({

url: "http://192.168.6.240:8080/form",

dataType: "json",

contentType: "application/x-www-form-urlencoded",

// toolbar: '#toolbar', //工具按钮用哪个容器

striped: true, //是否显示行间隔色

cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)

pagination: true, //是否显示分页(*)

sortable: false, //是否启用排序

sortOrder: "desc", //排序方式

sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)

pageNumber:1, //初始化加载第一页,默认第一页

pageSize: 10, //每页的记录行数(*)

pageList:[5,10,20,30],//分页步进值 //可供选择的每页的行数(*)

// search:true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大

// strictSearch: true,

oolbarAlign:'right',//工具栏对齐方式

buttonsAlign:'right',//按钮对齐方式

// showColumns: true, //是否显示所有的列

// showRefresh: true, //是否显示刷新按钮

minimumCountColumns: 2, //最少允许的列数

clickToSelect: true, //是否启用点击选中行

//height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度

uniqueId: "id", //每一行的唯一标识,一般为主键列

// showToggle:true, //是否显示详细视图和列表视图的切换按钮

cardView: false, //是否显示详细视图

// detailView: false, //是否显示父子表onEditableSave

// singleSelect: false,

// striped: true, //是否显示行间隔色

// cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)

// sortable: true, //是否启用排序

// pagination: true, //显示分页按钮

// sortName:"starttime",

// sortOrder:"desc", //默认排序

// pageNumber: 1, //初始化加载第一页,默认第一页

// pageSize: 10, //默认显示的每页个数

// showRefresh: true, //是否显示刷新按钮

// showPaginationSwitch: true, //是否显示选择分页数按钮

// queryParamsType: '', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort // 设置为 '' 在这种情况下传给服务器的参数为:pageSize,pageNumber

queryParams:function(params){

var temp = {

pageSize: params.pageSize, //页面大小

pageNumber: params.pageNumber, //页码

table_data:tempdata,

}

return temp;

},

responseHandler:function(res){

//动态渲染表格之前获取有后台传递的数据时,用于获取出除去本身渲染所需的数据的额外参数

//详见此函数参数的api

return res;

},

// search: true, //显示搜索框(客户端搜索)

//sidePagination: "server", //服务端处理分页

// showToggle:true, //是否显示详细视图和列表视图的切换按钮

cardView: false, //是否显示详细视图

// detailView: false, //是否显示父子表

columns: [{

title : '备注',

field : 'code',

align : 'center',

width : 100,

valign : 'middle',

},{

title : '操作',

field : 'name',

align : 'center',

width : 120 ,

valign : 'middle',

},

{

title : '编码',

field : 'calcMode',

align : 'center',

width : 120 ,

valign : 'middle',

}],

onLoadSuccess: function(){ //加载成功时执行

alert("加载数据成功");

},

onLoadError: function(){ //加载失败时执行

alert("加载数据失败");

}

});

};

会使用之后是不是觉得比自己写的table更好用多了,还不用写一大堆js和div等,还有更多功能可以去官网了解怎么使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值