BootStrap Table的JS封装
来源:互联网 发布:caffe 图像预处理 编辑:程序博客网 时间:2024/05/21 05:19
目前很多项目前台都使用bootstrap技术,初次接触时看了点网上的视频教程,深深地被它的样式所吸引,因为它是一个响应式的框架,可以根据浏览器的宽高自适应显示。
作为一名后台开发人员,bootstrap
table分页的实现是后台必备的利器。以下是在guns框架的bootstrap-table-object.js文件中对bootstrap
table的js封装。
/** * 初始化 BootStrap Table 的封装 * * 约定:toolbar的id为 (bstableId + "Toolbar") * * @author fengshuonan */(function () { var BSTable = function (bstableId, url, columns) { this.btInstance = null; //jquery和BootStrapTable绑定的对象 this.bstableId = bstableId; this.url = Feng.ctxPath + url; this.method = "post"; this.paginationType = "server"; //默认分页方式是服务器分页,可选项"client" this.toolbarId = bstableId + "Toolbar"; this.columns = columns; this.height = 665; //默认表格高度665 this.data = {}; this.queryParams = {}; // 向后台传递的自定义参数 }; BSTable.prototype = { /** * 初始化bootstrap table */ init: function () { var tableId = this.bstableId; this.btInstance = $('#' + tableId).bootstrapTable({ contentType: "application/x-www-form-urlencoded", url: this.url, //请求地址 method: this.method, //ajax方式,post还是get ajaxOptions: { //ajax请求的附带参数 data: this.data }, toolbar: "#" + this.toolbarId,//顶部工具条 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "desc", //排序方式 pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 14, //每页的记录行数(*) pageList: [14, 50, 100], //可供选择的每页的行数(*) queryParamsType: 'limit', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort queryParams: function (param) { return $.extend(this.queryParams, param); }, // 向后台传递的自定义参数 sidePagination: this.paginationType, //分页方式:client客户端分页,server服务端分页(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端 strictSearch: true, //设置为 true启用 全匹配搜索,否则为模糊搜索 showColumns: true, //是否显示所有的列 showRefresh: true, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法 columns: this.columns, //列数组 pagination: true, //是否显示分页条 height: this.height, icons: { refresh: 'glyphicon-repeat', toggle: 'glyphicon-list-alt', columns: 'glyphicon-list' }, iconSize: 'outline' }); return this; }, /** * 向后台传递的自定义参数 * @param param */ setQueryParams: function (param) { this.queryParams = param; }, /** * 设置分页方式:server 或者 client */ setPaginationType: function (type) { this.paginationType = type; }, /** * 设置ajax post请求时候附带的参数 */ set: function (key, value) { if (typeof key == "object") { for (var i in key) { if (typeof i == "function") continue; this.data[i] = key[i]; } } else { this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value; } return this; }, /** * 设置ajax post请求时候附带的参数 */ setData: function (data) { this.data = data; return this; }, /** * 清空ajax post请求参数 */ clear: function () { this.data = {}; return this; }, /** * 刷新 bootstrap 表格 * Refresh the remote server data, * you can set {silent: true} to refresh the data silently, * and set {url: newUrl} to change the url. * To supply query params specific to this request, set {query: {foo: 'bar'}} */ refresh: function (parms) { if (typeof parms != "undefined") { this.btInstance.bootstrapTable('refresh', parms); } else { this.btInstance.bootstrapTable('refresh'); } } }; window.BSTable = BSTable;}());
前台html代码调用变得十分简单。
$(function () { var defaultColunms = Student.initColumn(); var table = new BSTable(Student.id, "/student/list", defaultColunms); table.setPaginationType("client"); Student.table = table.init();});
第一步:准备请求后台调用的地址/student/list。即构建BSTable对象的第二个参数。需要配合后台开发人员使用各种框架实现。
第二步:显示列字段的准备。即构建BSTable对象的第三个参数。只需要在页面构建一个如下bootstrap需要的对象。
Student.initColumn = function () { return [ {field: 'selectItem', radio: true}, {title: 'id', field: 'id', align: 'center', valign: 'middle',width:'50px'}, {title: '姓名', field: 'name', align: 'center', valign: 'middle', sortable: true}, {title: '地址', field: 'address', align: 'center', valign: 'middle', sortable: true}];};
第三步:方法的调用。
table.init();
从代码的封装来看,最终还是调用了bootstrap的bootstrapTable方法,只不过我们通过需要准备哪个table(table的id),url(请求地址),columns(请求的列),其他的参数都以默认的实现,如method为post,高度为665,默认服务器端分页。
特别需要注意的是:约定:toolbar的id为 (bstableId + “Toolbar”)
如要修改默认的实现,只需要修改该封装代码即可,如 clickToSelect: true, //是否启用点击选中行,我们还可以通过设置table.setPaginationType(“client”);实现客户端分页,而不用请求服务器后台。
阅读全文
0 0
- BootStrap Table的JS封装
- bootstrap-table(JS用法)
- 利用vue.js把静态json绑定bootstrap的table
- Bootstrap table的使用方法
- bootstrap table的实现
- bootstrap-table的使用
- bootstrap-table的使用
- JS组件Bootstrap Table使用方法详解
- JS表格组件神器bootstrap table详解
- Boostrap-table.js的表格数据可视化 集成bootstrap-editable.js
- bootstrap-table 插件的使用
- 开发bootstrap的table列表
- Bootstrap Table的例子(转载)
- bootstrap-table 分页的问题
- bootstrap table的常用操作
- bootstrap-table 分页的问题
- Bootstrap Table的使用小结
- bootstrap设置table的样式
- 如何判断自己的电脑是大端还是小端?
- MySQL之——解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
- Spring Boot快速入门
- Sql去重,比较两张表的重复数据
- codis3.1.5稳定版安装
- BootStrap Table的JS封装
- light oj 1214 Large Division
- 韩顺平servlet学习笔记05-servletContext
- 删除排序数组中的重复数字-LintCode
- SQL Server 2008 角色
- tensorflow:tf.stack的用法
- html实现 页面禁止右键 禁止复制 禁止图片拖动 禁止复制和剪切
- url传参特殊字符问题
- SVN被锁定而无法提交的问题