BootstrapTable 行内编辑解决方案

一般来说,采用bootstrap table,添加和修改数据都是通过弹出模态框来实现的,

但是现在遇见了一个点击行来实现编辑和新增的需求

html代码:

<div class="panel-body" style="padding-bottom: 0px;">

     <div id="toolbar" style="margin-left: 15px;">
            <button id="button" class="btn btn-default">insertRow</button>//插入一行
            <button id="getTableData" class="btn btn-default">getTableData</button>//获取全部数据
        </div>
        <table id="getzxsjsz" data-mobile-responsive="false"></table>//表格展示
    </div>

js代码:

var name = '';// 登陆用户姓名

window.onload = PageReady;
function PageReady() {
    
    // 1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

   //定义
    let $table = $('#getzxsjsz');
    let $button = $('#button');
    let $getTableData = $('#getTableData');

    $button.click(function() {
        $('#getzxsjsz').bootstrapTable('insertRow', {
            index: 0,
            row: {
                zxlx: '',
                sbsj: '',
                xbsj: '',
                wxkssj: '',
                wxjssj: '',
                cz:''
            }
        });
    });
    
    $getTableData.click(function() {
        alert(JSON.stringify($table.bootstrapTable('getData')));
    });

}

// 查询作息时间
var TableInit = function() {
    var oTableInit = new Object();
    // 初始化Table
    oTableInit.Init = function() {
        getCqlData();
    };

    // 得到查询的参数
    oTableInit.queryParams = function(params) {
        var temp = { // 这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            limit : params.limit, // 页面大小
            offset : params.offset, // 页码
        };
        return temp;
    };
    return oTableInit;
};

// 获取数据
function getCqlData(){
    $('#getzxsjsz')
    .bootstrapTable(
            {
                url : '../ajaxjsp/zxsjsz_json.jsp?type=getzxsjsz', // 请求后台的URL(*)
                toolbar : '#toolbar', // 工具按钮用哪个容器
                striped : true, // 是否显示行间隔色
                cache : false, // 是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                pagination : true, // 是否显示分页(*)
                sortable : false, // 是否启用排序
                sortOrder : "asc", // 排序方式
                // queryParams : oTableInit.queryParams,// 传递参数(*)
                sidePagination : "client", // 分页方式:client客户端分页,server服务端分页(*)
                pageNumber : 1, // 初始化加载第一页,默认第一页
                pageSize : 10, // 每页的记录行数(*)
                pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数(*)
                search : false, // 是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
                strictSearch : true,
                showExport: true,   // 是否显示导出
                // exportTypes:['excel','xlsx'], //导出类型
                exportOptions : {
                    fileName : document.title
                },
                exportDataType: "all",              // basic', 'all',
                                                    // 'selected'.
                showColumns : true, // 是否显示所有的列
                showRefresh : true, // 是否显示刷新按钮
                minimumCountColumns : 2, // 最少允许的列数
                clickToSelect : false, // 是否启用点击选中行
                height : '', // 行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
                uniqueId : "", // 每一行的唯一标识,一般为主键列
                showToggle : true, // 是否显示详细视图和列表视图的切换按钮
                cardView : false, // 是否显示详细视图
                detailView : false, // 是否显示父子表
                //fixedColumns : true,
                //fixedNumber : 1,//固定列数
                columns :     [/*{
                    field : 'zxlx',
                    title : '作息类型',
                    align: 'center',
                    width: 180
                }, */{
                    field : 'sbsj',
                    title : '上班时间',
                    align: 'center'
                }, {
                    field : 'xbsj',
                    title : '下班时间',
                    align: 'center'
                }, {
                    field : 'wxkssj',
                    title : '午休开始时间',
                    align: 'center'
                }, {
                    field : 'wxjssj',
                    title : '午休结束时间',
                    align: 'center'
                }] ,

                  //双击单元格修改数据
                  onClickCell: function(field, value, row, $element) {
                        $element.attr('contenteditable', true);
                        $element.blur(function() {
                            let index = $element.parent().data('index');
                            let tdValue = $element.html();
                          //  alert(row.zxlx);
                            saveData(index, field, tdValue , row.zxlx);
                        })
                    }
            });
    
}

//保存数据
function saveData(index, field, value, zxlx) {
    //刷新页面数据
    $('#getzxsjsz').bootstrapTable('updateCell', {
        index: index,       //行索引
        field: field,       //列名
        value: value        //cell值
    });
    var allTableData = $('#getzxsjsz').bootstrapTable('getData');
    //后台处理
    loginData({
        type : "UpdateZxsj",
        zxlx : encodeURI(zxlx),
        field : encodeURI(field),
        value : encodeURI(value),
        callback : "backfillData"
    }, false, "/zxsjsz_json.jsp");
}

function backfillData(data){
    if(data>0){  //表示修改成功
        Search(); //刷新列表
    }
}

// 查询
function Search() {
    var param = {
            url : '../ajaxjsp/zxsjsz_json.jsp?type=getzxsjsz'
         }
    $('#getzxsjsz').bootstrapTable('refresh',param);
}

相关架包:

<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet" />

<link href="../bootstrap-table/bootstrap-table.css" rel="stylesheet" />
<link href="../bootstrap-table/bootstrap-table-fixed-columns.css" rel="stylesheet" />
<script src="../bootstrap-table/jquery-1.10.2.js"></script>
<script src="../bootstrap/js/bootstrap.min.js"></script>
<script src="../bootstrap-table/bootstrap-table.js"></script>
<script src="../bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
<script src="../bootstrap-table/bootstrap-table-fixed-columns.js"></script>
<script src="../bootstrap-table/bootstrap-table-export.min.js"></script>
<script src="../bootstrap-table/tableExport.min.js"></script>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Bootstrap Table是一个基于Bootstrap的可扩展表格插件,支持行内编辑功能。通过设置editable选项为true,可以启用行内编辑功能。当用户单击单元格时,单元格将变为可编辑状态,用户可以在单元格中输入新值。当用户完成编辑并按下Enter键或单击其他单元格时,新值将保存到数据源中。同时,Bootstrap Table还提供了许多事件和方法,可以帮助您更好地控制行内编辑功能。 ### 回答2: Bootstrap Table是一种基于Bootstrap构建的灵活的、强大的、直观的、易于使用的表格插件。Bootstrap Table提供了许多功能,其中之一就是行内编辑Bootstrap Table行内编辑功能让用户能够直接在表格中编辑数据,这一功能非常实用且节省时间。 使用Bootstrap Table行内编辑功能时,我们需要将表格的editable选项设置为true。这样可以启用行内编辑功能,并且可以配置每个单元格的编辑器。Bootstrap Table支持多种类型的编辑器,包括文本框、下拉框、日期选择器等。 当用户点击单元格时,该单元格将变为可编辑状态,并且显示相应的编辑器。用户可以通过编辑器修改单元格中的内容。当用户完成编辑时,可以点击单元格以外的区域或按下Enter键保存修改,或者按下Esc键取消修改。 在使用Bootstrap Table行内编辑功能时,还可以配置编辑后的事件。可以在编辑后执行一些自定义的操作,例如更新数据库、重新计算数据、刷新表格等。此外,也可以配置编辑时和编辑完成时的样式,以增强用户体验。 通过以上方式,我们可以使用Bootstrap Table行内编辑功能来编辑表格中的数据。行内编辑是一种非常实用且方便的功能,能够提高数据处理的效率,减少工作量,增强用户体验。 ### 回答3: BootstrapTable是一种流行的基于Bootstrap的表格插件。BootstrapTable行内编辑功能为用户带来了更改表格内容的便利性。 在BootstrapTable中,行内编辑可以通过两种方式实现:弹出式编辑和内联编辑。 弹出式编辑需要通过设置editable: { popup: true }来启用。这将在单击编辑图标时弹出编辑表单。通过设置编辑类型(例如输入框、下拉框等)并提供保存和取消按钮,用户可以在编辑表单中修改数据。在保存时,表格将更新相应的数据。如果取消编辑,表格将回到原始状态。 内联编辑需要通过设置editable: { mode: "inline" }来启用。这将允许用户直接在表格中编辑数据。单击单元格时会显示编辑框。用户可以在编辑框中进行更改,然后按Enter键将更改保存到表格中。对于文本和数字数据,BootstrapTable提供输入框。对于日期数据,它提供日期选择器。对于下拉框数据,它提供下拉框。 此外,BootstrapTable还支持行内编辑时的回调函数。这些函数将使开发人员能够检查用户的更改,并根据需要执行其他操作。如果用户只需更改数据而不需要执行其他操作,则无需编写回调函数。 BootstrapTable行内编辑功能是一个非常有用的功能,可以使表格操作更加方便和快捷。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值