当前位置: 首页 > news >正文

Java研学-BootStrapTable插件

一 列表展示

官方Bootstrap Table参考文档

1 Bootstrap Table相关的CSS和JS文件

<!-- bootstrap-table 表格插件 -->
<link href="/js/bootstrap-table/bootstrap-table.min.css?v=20210202" rel="stylesheet"/>
<script src="/js/bootstrap-table/bootstrap-table.min.js?v=20210202"></script>
<script src="/js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js?v=20210202"></script>
<script src="/js/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js?v=20210202"></script>

2 编写table代码

<table id="table"></table>

3 将渲染table标签成组件

$('#table').bootstrapTable({url: '/permission/listData',method: 'GET',   //数据请求方式sidePagination:'server',//服务端分页pagination:true,//开启分页pageNumber:1, //当前地基页pageSize:5, //每页显示数据条数// 默认分页给后台传递的是offset和limituniqueId:"id",columns: [{field: 'id',title: '编号'}, {field: 'name',title: '权限名称'}, {field: 'expression',title: '权限表达式'}, {title: '操作',align: 'center',formatter: function(value, row, index) {var actions = [];actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" οnclick="editOp('+row.id+')"><i class="fa fa-edit"></i>编辑</a> ');actions.push('<a class="btn btn-danger btn-xs btn-delete" href="javascript:void(0)" οnclick="deleteOp('+row.id+')"><i class="fa fa-remove"></i>删除</a> ');return actions.join('');}}]});

4 后台返回组件所需数据格式要求

{"total":8,"rows":[{},{},{}]}

5 实体类 – 记录列表数据与总数

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class TableDataInfo {//总记录数private long total;//列表数据private List<?> rows;
}

6 后台控制器方法需返回JSON格式数据

@RequestMapping("/list")
public String list() {return "permission/list";
}
@RequestMapping("/listData")
@ResponseBody
public TableDataInfo listData(QueryObject qo)
{PageHelper.offsetPage(qo.getOffset(),qo.getLimit());//设置分页信息PageInfo<Permission> pageInfo = permissionService.query(qo);return new TableDataInfo(pageInfo.getTotal(),pageInfo.getList());
}

二 高级查询

1 新增输入框和查询按钮

关键字:<input type="text" name="key">
<a href="#" class="btn btn-success btn-input" style="margin: 10px" onclick="searchOp()"><span class="glyphicon glyphicon-search"></span> 检索
</a>

2 bootstrapTable配置信息

queryParams:function(params) {params.key=$("[name=key]").val();return params;
},

3 搜索点击事件处理

function searchOp(){$('#table').bootstrapTable('refresh');
}

三 新增功能

  添加按钮增加点击事件

<a href="#" class="btn btn-success btn-input" style="margin: 10px" onclick="addOp()"><span class="glyphicon glyphicon-plus"></span> 添加
</a>
function addOp(){$('input[name]').val('');$("#modalTitle").html("权限新增");$('.modal').modal('show');
}

四 编辑功能

  添加编辑点击事件,需要将数据回显到对话框中

function editOp(id){var row=$('#table').bootstrapTable('getRowByUniqueId',id);$('input[name]').val('');$('input[name=id]').val(row.id);$('input[name=name]').val(row.name);$('input[name=expression]').val(row.expression);$("#modalTitle").html("权限编辑");$('.modal').modal('show');
}

五 保存功能

1 点击保存发送AJAX请求

function saveOp(){$.ajax({url: "/permission/saveOrUpdate",type: "post",dataType: "json",data: $('#dataForm').serialize(),success: function(result) {if(result.success){$('#table').bootstrapTable('refresh');$('.modal').modal('hide');}else{Swal.fire({text: result.data,icon: 'warning',})}}})
}

2 需返回JSON格式数据

@RequestMapping("/saveOrUpdate")
@ResponseBody
public JsonResult saveOrUpdate(Permission permission) {if (permission.getId() == null) { // 新增permissionService.save(permission);} else {permissionService.update(permission);}// 重定向return new JsonResult(true,"操作成功");
}

六 删除功能

1 加删除按钮点击事件

function deleteOp(id){Swal.fire({title: '确认删除',text: "此操作不可逆",icon: 'warning',showCancelButton: true,confirmButtonColor: '#2875d6',cancelButtonColor: '#d23',confirmButtonText: '确定',cancelButtonText: '取消'}).then((result) => {if(result.value) {$.ajax({url: "/permission/delete?id="+id,type: "get",dataType: "json",success: function(result) {if(result.success){$('#table').bootstrapTable('refresh');}else{Swal.fire({text: result.data,icon: 'warning',})}}})}});
}

2 后台控制器方法需返回JSON格式数据

@RequestMapping("/delete")
@ResponseBody
public JsonResult delete(Long id) {if (id != null) {permissionService.delete(id);}return new JsonResult(true,"删除成功");
}

相关文章:

  • 监控和日志管理:深入了解Nagios、Zabbix和Prometheus
  • 【CSS】盒子模型
  • Vue 之组件插槽Slot用法(组件间通信一种方式)
  • 基于NXP LS1046+FPGA的轨道交通3U CPCI多网口解决方案,支持QNX/VXWOKRS/LINUX
  • ERP系统委外工单管理
  • Hive ROW_NUMBER() 简介
  • kubernets资源相关内容介绍
  • 鸢尾花书实践和知识记录[编程1-10可视化]
  • CSS——边框线条动画效果
  • Spring Boot 进阶-Spring Boot的全局异常处理机制详解
  • Linux之实战命令19:tac应用实例(五十三)
  • 输入输出返回值
  • 深圳某局联想SR850服务器黄灯 不开机维修
  • gcc选项-fno-access-control 使用
  • JAVA-内部类和匿名内部类
  • 【刷算法】求1+2+3+...+n
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android 架构优化~MVP 架构改造
  • E-HPC支持多队列管理和自动伸缩
  • Git的一些常用操作
  • java8-模拟hadoop
  • Java程序员幽默爆笑锦集
  • JS变量作用域
  • js如何打印object对象
  • js学习笔记
  • maven工程打包jar以及java jar命令的classpath使用
  • mockjs让前端开发独立于后端
  • MySQL数据库运维之数据恢复
  • MySQL主从复制读写分离及奇怪的问题
  • Node 版本管理
  • PhantomJS 安装
  • rc-form之最单纯情况
  • SpiderData 2019年2月23日 DApp数据排行榜
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue-cli3搭建项目
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从tcpdump抓包看TCP/IP协议
  • 多线程 start 和 run 方法到底有什么区别?
  • 番外篇1:在Windows环境下安装JDK
  • 搞机器学习要哪些技能
  • 官方解决所有 npm 全局安装权限问题
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 深入浅出Node.js
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $().each和$.each的区别
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (JS基础)String 类型