表格组件---bootstrapTable
bootstrapTable
中文官方网站http://bootstrap-table.wenzhixin.net.cn
1.文件引用
//1、引用Jquery
<script src="~/Scripts/jquery-1.10.2.js"></script> //2、应用bootstrap
<script src="~/Content/bootstrap/bootstrap.js"></script>
<link href="~/Content/bootstrap/bootstrap.css" rel="stylesheet" /> //3、引用bootstrap table组件
<script src="~/Content/bootstrap-table/bootstrap-table.js"></script>
<link href="~/Content/bootstrap-table/bootstrap-table.css" rel="stylesheet" />
<script src="~/Content/bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
2.bootstrap-table说明
关于列参数的操作
formatter:对列参数进行格式化,可以返回value值,也可以返回一个dom元素,例如一个操作按钮
editable:实现列参数的可编辑功能。validate:对列参数的内容限制,可提示异常信息
关于分页
sidePagination可以在客户端分页,填写参数的值为"client",客户端分页也就是将所有数据取出,前端分页展示,弊端就是数据量比较大的时候,会查询比较慢;
也可以在服务端分页,填写参数的值为"server",服务端分页也就是后端分页,后端接收到分页参数,每次查询传递的参数那么多数据,点击其他页面时再次出发查询请求,需要limit页面大小,offset页面偏移量两个参数
具体需要在queryParams处,填写页面大小和页面偏移量
limit: params.limit, //页面大小
offset: params.offset, //页码偏移量
hibernate 数据dao的实现层,具体的sql语句如下
@Override
public List findByPage(final String hql, final Object value, final int offset, final int pageSize) {
// TODO Auto-generated method stub
// 通过一个HibernateCallback 对象来执行查询
// System.out.println(hql);
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
// 实现hibernateCallback接口必须实现的方法
@Override
public Object doInHibernate(Session session)
throws HibernateException {
// 执行hibernate 分页查询
Query query= session.createQuery(hql);
whereParameter((AppiumConfig)value, query);
List result =query
.setFirstResult(offset).setMaxResults(pageSize).list();
session.close();
return result;
} });
return list;
}
3.bootstrap-table代码
//1.初始化Table
var oTable = new TableInit();
oTable.Init();
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
$('#tb_appiumconfig').bootstrapTable({
url: '/appAppium/list.do', //请求后台的URL(*)
method: 'get', //请求方式(*)
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: false, //是否启用排序
sortOrder: "asc", //排序方式
queryParams: oTableInit.queryParams,//传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
search: true, //是否显示表格搜索,此搜索会进服务端
strictSearch: true,
showColumns: false, //是否显示所有的列
showRefresh: true, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
clickToSelect: true, //是否启用点击选中行
height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
uniqueId: "ID", //每一行的唯一标识,一般为主键列
showToggle: false, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
columns: [{
checkbox: true,
width: '3%',
}, {
field: 'id',
title: 'id',
visible: false
}, {
field: 'projectid',
title: 'projectid',
visible: false
}, {
field: 'projectname',
title: '项目名称',
width: '10%',
}, {
field: 'apppackage',
title: 'app包名',
width: '10%',
}, {
field: 'apkupload',
title: 'apk路径',
width: '30%',
formatter: function (value, row, index) {
console.log(row);
return value;
}
},
{
field: 'updatetime',
title: '更新时间',
width: '10%',
},
/*{
field: 'clientip',
title: '客户端IP',
width: '7%',
formatter: function (value, row, index) {
if (value.indexOf("**0") > -1) {
return '<font style="color:#00bf5f">' + value.substring(0, value.indexOf("**0")) + '</font>';
} else if (value.indexOf("**1") > -1) {
return '<font style="color:#ff0000">' + value.substring(0, value.indexOf("**1")) + '</font>';
} else {
return '<font style="color:#FF7F00">' + value + '</font>';
}
}
},*/
{
field: 'operationer',
title: '更新人员',
width: '10%',
},
{
field: 'remark',
title: '备注',
width: '20%',
editable: {
type: 'textarea',
title: '备注',
emptytext: "无备注",
validate: function (value) {
if (value.length > 200)
return '备注不能超过200个字符';
}
}
}],
onEditableSave: function (field, row, oldValue, $el) {
var status = document.getElementById("loginstatus").value;
if (status == "false") {
if (window.confirm("你未登录哦,要先去登录吗?")) {
var url = '/progressus/signin.jsp';
window.location.href = url;
return true;
} else {
return false;
}
} $('#tb_appiumconfig').bootstrapTable("resetView");
$.ajax({
type: "post",
url: "/appAppium/update.do",
data: row,
dataType: 'JSON',
success: function (data, status) {
if (data.status == "success") {
toastr.success(data.ms);
} else {
$('#tb_appiumconfig').bootstrapTable('refresh');
toastr.info(data.ms);
}
},
error: function () {
toastr.error('编辑失败!');
},
complete: function () { } });
}
});
};
//得到查询的参数
oTableInit.queryParams = function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
limit: params.limit, //页面大小
offset: params.offset, //页码偏移量
search: params.search, //搜索参数
projectid: $('#search_project').val(), //项目ID
};
return temp;
}; return oTableInit;
};
使用过程中遇到的问题后续补充,,,
表格组件---bootstrapTable的更多相关文章
- js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable
js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable 一.总结 一句话总结:bootstrap能够做为最火的框架,绝对不仅仅只有我看到的位置,它应该还有很多位置可 ...
- JS组件系列——表格组件神器:bootstrap table
前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...
- JS组件系列——表格组件神器:bootstrap table(二:父子表和行列调序)
前言:上篇 JS组件系列——表格组件神器:bootstrap table 简单介绍了下Bootstrap Table的基础用法,没想到讨论还挺热烈的.有园友在评论中提到了父子表的用法,今天就结合Boo ...
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...
- 表格组件神器:bootstrap table详细使用指南
1.bootstrap-table简介 1.1.bootstrap table简介及特征: Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单 ...
- [转]JS组件系列——表格组件神器:bootstrap table
原文地址:https://www.cnblogs.com/landeanfen/p/4976838.html 前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉 ...
- JS组件系列——表格组件神器:bootstrap table 包含了js对象的定义和对象成员函数的定义
前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...
- 【转载】BootStrap表格组件bootstrap table详解
(转载,来源“脚本之家”,作者不详) 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstr ...
- Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
因为内容比较多,所以每篇讲解一些内容,最后会放出全部代码,可以参考.操作中总会遇到各式各样的问题,个人对部分问题的研究在最后一篇 问题研究 里.欢迎大家探讨学习. 代码都经过个人测试,但仍可能有各种未 ...
随机推荐
- 密码加密与微服务鉴权JWT详细使用
[TOC] 1.1.了解微服务状态 微服务集群中的每个服务,对外提供的都是Rest风格的接口,而Rest风格的一个最重要的规范就是:服务的无状态性. 什么是无状态? 1.服务端不保存任何客户端请求者信 ...
- BZOJ4543 Hotel加强版(长链剖分)
题意 求一棵树上,两两距离相等的三个点的三元组(无序)的个数. 题解 转自 CaptainHarryChen 的博客 CODE 代码中的f,gf,gf,g对应题解中的num,waynum,waynum ...
- python导包问题,这一篇就够了
解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...
- Java8实战,
Supplier 1, @FunctionalInterfacepublic interface Supplier<T> { 2, T get(); 3, Supplier<A ...
- 使用webuploader实现大文件上传分片上传
本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...
- [Luogu] 运输计划
https://www.luogu.org/problemnew/show/2680 inline 神奇的东西 最好戒掉吧(read()除外) 这道题将求解性问题转化为判定性问题,当然就是二分答案了 ...
- Codefest 2019 比赛总结
蒟蒻的心路历程 上来看B,结果不会... 回来做A,写完之后nantf已经切B了. 回来做B,花了13min磕了出来. 继续做C,自闭. 继续做D,花了10min磕了出来. 继续做E,一开始有点自闭, ...
- Web前端-JavaScript基础教程下
Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...
- 洛谷P2305 [NOI2014]购票 [DP,树状数组]
传送门 思路 显然是树形DP,显然是斜率优化,唯一的问题就是该怎么维护凸包. 套路1:树上斜率优化,在没有这题的路程的限制的情况下,可以维护一个单调栈,每次加入点的时候二分它会加到哪里,然后替换并记录 ...
- python 元组 【基本使用功能】
元组是括号,列表是方括号,都可以通用的有好多,比如判断一个元素是否存在可以直接用 in ,复制或者合并可以直接用乘或者加. 下面是在菜鸟教程截得的: 示例: #!/usr/bin/python # - ...