bootstrap 可编辑列表,实现某个单元格动态控制是否可编辑状态

本文介绍如何在bootstrap中使用x-editable组件或formatter属性动态控制表格单元格的可编辑状态,包括文本输入和日期选择器的控制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bootstrap行内编辑列表的实现可借助x-editable组件,也可借助列的formatter属性通过格式化单元格来达到目的。这里要介绍的是如何动态控制单个单元格的是否可编辑状态。

第一种情况:使用x-editable组件下的动态控制

下面以表格中某一列的初始化代码为例
在editable中添加属性:toggleDisabled(这个属性相当于一个函数,通过传入参数,来控制是否可编辑)

...
{title: '合同名称', field: 'contractName', align: 'center',halign:'center',
    formatter:function (value, row, index) {
        return value;
    },
    editable: {
        type: 'text',
        showbuttons:true,
        validate: function (v) {
            if ($.trim(v) == '') {
                return '合同名称不能为空!';
            }
        },
        toggleDisabled:function(isEnable){
            if (isEnable){
                this.enable();// 可编辑
            } else {
                this.disabled();// 不可编辑
            }
        }
    }
},
...

下面是控制该单元格是否可编辑的代码,其中关于某个单元格的选择,视具体情况而定

// 可编辑状态
$("#TrackingTable tr[data-index='0'] a[data-name='contractName']").editable('toggleDisabled',true)

在这里插入图片描述

// 不可编辑状态
$("#TrackingTable tr[data-index='0'] a[data-name='contractName']").editable('toggleDisabled',false)

在这里插入图片描述


第二种情况:使用formatter格式化后的日期单元格

此处以bootstrap datetimepicker插件为例进行说明

...
{title: '合同签订日期', field: 'contractDate', align: 'center',halign:'center',
    formatter:function (value, row, index) {
        if(value==undefined){
            return "<input type='text' value='' class='form-control datetimepicker'>";
        }
        else{
            return "<input type='text' value='"+new Date(value).format("yyyy-MM-dd")+"' class='form-control datetimepicker'>";
        }
    }
},
...
// 可编辑状态
$("#TrackingTable tr[data-index='0'] .datetimepicker").prop("disabled", false).datetimepicker()

在这里插入图片描述

// 不可编辑状态(为灰色,不可点击)
$("#TrackingTable tr[data-index='0'] .datetimepicker").prop("disabled", true).datetimepicker()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值