使用EditTable实现可编辑列表

使用BootStrap中的EditTable插件实现可编辑列表

业务需求:
  • 列表中某一列要求可以直接点击进行编辑保存
实现效果:
  • 点击序号列,出现弹窗实现编辑保存
    在这里插入图片描述
具体功能实现
  • 下载环境所需的 js、css放到项目的静态资源目录下

百度云链接:
链接:https://pan.baidu.com/s/1u0Dvr2JgySGsM8MJtP03Wg
提取码:drr1

  • 页面中引入静态资源 (注:根据自己的静态资源文件位置改写下方代码,如果出现引入时机问题,请在文件最底部引入)
<link href="/js/bootstrap3-editable/css/bootstrap-editable.css" rel="stylesheet"/>
<script src="/js/bootstrap3-editable/js/bootstrap-editable.js"></script>
<script type="text/javascript" src="/js/common/bootstrap-table-edittable.js"></script>
  • 修改对应页面的js文件
function imageinfoload() {
	//注意此处,将表单放在 bootstrapTable 方法体中
    $('#FormTableId').bootstrapTable({
            id: "FormTableId",
            type: 0, // 0 代表bootstrapTable 1代表bootstrapTreeTable
            method : 'get', // 服务器数据的请求方式 get or post
            url: kpsfgcBasicinfoPrefix + "/toSubmitListData", // 服务器数据的加载地址
            iconSize : 'outline',
            toolbar : 'toolbar',
            striped : true, // 设置为true会有隔行变色效果
            dataType : "json", // 服务器返回的数据类型
            pagination : true, // 设置为true会在底部显示分页条
            // queryParamsType : "limit",
            // //设置为limit则会发送符合RESTFull格式的参数
            singleSelect : false, // 设置为true将禁止多选
            // contentType : "application/x-www-form-urlencoded",
            // //发送到服务器的数据编码类型
            pageSize : 10, // 如果设置了分页,每页数据条数
            pageNumber : 1, // 如果设置了分布,首页页码
            //search : true, // 是否显示搜索框
            showColumns : false, // 是否显示内容下拉框(选择显示的列)
            sidePagination : "server", // 设置在哪里进行分页,可选值为"client" 或者 "server"
            queryParams : function(params) {
                return {
                    limit: params.limit,
                    offset:params.offset,
                    unitName : $("#unitName").val(),
                    principal : $("#principal").val(),
                    sblb : $("#sblb").val(),
                    declarationDate : $("#declarationDate").val()
                };
            },
            columns : [
                {
                    checkbox : true
                },
                {
                    field : 'codeIndex',
                    title : '序号',
                    color : '#FFFFFF',
                    align: 'center',
                    editable: {  //此处为序号编辑弹框及校验
                        type: 'text',
                        title: "序号",
                        autohide : false,
                        width : '30px',
                        color : '#FFFFFF',
                        validate: function (value) { //字段验证
                            if (!$.trim(value)) {
                                return '不能为空';
                            }
                            var r = /^\+?[1-9][0-9]*$/;  //正整数
                            if(!r.test(value) || value > 10000){
                                return '请输入正确的序号';
                            }
                        }
                    },
                    formatter: function (value, row, index) {
                        var htmlText = isNull(row.codeIndex) || row.codeIndex == '0' ? "编号" : row.codeIndex;
                        return htmlText;
                    }
                },
                {
                    field: 'startTime',
                    title: '起始日期',
                    align: 'center',
                },
                {
                    field: 'sblbName',
                    title: '结束日期',
                    align: 'center',
                },
                {
                    field: 'deptName',
                    title: '学术组织或机构名称',
                    align: 'center',
                },
                {
                    field: 'dutiesName',
                    title: '职务',
                    align: 'center',
                }],
            //点击后的回调函数
            onEditableSave: function (field, row, oldValue, $el) {//提交行内编辑数据
                $.ajax({
                    cache : true,
                    type : "POST",
                    url : "更新接口",
                    data : {
                        id : row['id'],
                        codeInde: row['codeInde']
                    },
                    async : false,
                    success : function(data) {
                        if (data.code == 0) {
                            parent.layer.msg("操作成功");
                            imageinfoload();//回调
                        } else {
                            parent.layer.alert(data.msg);
                            imageinfoload();//回调
                        }
                    }
                });
            }
        });
}
  • 编辑后回调函数理解
/*
* editTable 编辑后执行保存函数的方式有两种
*/

//方式一: 可直接在每一个column中进行编辑保存
{
     field : 'codeIndex',
     title : '序号',
     color : '#FFFFFF',
     align: 'center',
     editable: {
	     type: 'codeIndex',
	     title: "序号",
	     autohide : false,
	     width : '30px',
	     color : '#FFFFFF',
	     validate: function (value) { //字段验证
	               if (!$.trim(value)) {
	                   return '不能为空';
	               }
	               var r = /^\+?[1-9][0-9]*$/;  //正整数
	               if(!r.test(value) || value > 10000){
	                     return '请输入正确的序号';
	                 }
	               }
	             },
	     url:'接口映射',        
	     formatter: function (value, row, index) {
	               var htmlText = isNull(row.codeIndex)|| row.codeIndex == '0' ? "编号" : row.codeIndex;
	               return htmlText;
}

//方式二: 使用onEditableSave 进行编辑保存 (注:上述代码使用方式二)
	onEditableSave: function (field, row, oldValue, $el) {//提交行内编辑数据
          $.ajax({
                cache : true,
                type : "POST",
                url : "更新接口",
                data : {
                    id : row['id'],
                    codeInde: row['codeInde']
                },
                async : false,
                success : function(data) {
                    if (data.code == 0) {
                       parent.layer.msg("操作成功");
                       imageinfoload();//回调
                    } else {
                       parent.layer.alert(data.msg);
                       imageinfoload();//回调
                    }
                 }
           });
        }
   });
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值