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

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和limit
            uniqueId:"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,"删除成功");
}

http://www.kler.cn/a/329249.html

相关文章:

  • Linux进阶:软件安装、网络操作、端口、进程等
  • 语义分割(semantic segmentation)
  • C++语言系列-STL容器和算法
  • 进程其他知识点
  • 机器学习day7-线性回归3、逻辑回归、聚类、SVC
  • 2024年低压电工证考试题库及低压电工试题解析
  • $_POST = file_get_contents(“php://input“);是什么意思
  • C语言指针详解与应用(不断更新)
  • MongoDB 入门及实践
  • 【cache】浅析四种常用的缓存淘汰算法 FIFO/LRU/LFU/W-TinyLFU
  • MongoDB 聚合管道
  • Springboot3 + MyBatis-Plus + MySql + Vue + ProTable + TS 实现后台管理商品分类(最新教程附源码)
  • Webpack和GuIp打包原理以及不同
  • IDM下载器如何下载网盘文件 IDM下载器支持哪些网盘
  • 【数据库】Java 集成mongodb— MongoTemplate 详解
  • OpenCV图像文件读写(6)将图像数据写入文件的函数imwrite()的使用
  • YOLO11改进|卷积篇|引入可变核卷积AKConv
  • 程序计数器(学习笔记)
  • Docker 进入容器运行命令的详细指南
  • “图像识别技术:重塑生活与工作的未来”
  • Linux:编译,调试和Makefile
  • Spring MVC系统学习(一)——初识Spring MVC框架
  • AIGAME平台的由来与未来展望 —— 蒙特加密基金推动区块链与AI融合创新
  • Redis篇(应用案例 - 短信登录)(持续更新迭代)
  • GEE教程:利用sentinel-2数据和NDVI指数监测火灾
  • Ansible实现剧本远程服务器创建、删除用户