Tabulator 4.9中是否支持条件性禁用movableRows功能?
Tabulator 4.9 条件性禁用movableRows功能实现方法
4.9版本原生支持该需求,不需要修改框架源码,有两种常用实现方案:
- 行级粒度控制(最常用)
全局开启movableRows: true后,可针对单行设置movable: false属性禁用该行的拖动能力,通常在rowInit回调里根据业务条件判断即可:
new Tabulator("#your-table", { movableRows: true, // 全局开启行拖动 rowInit: (row) => { const data = row.getData(); // 替换为你的业务判断逻辑,例:行状态为已审核时禁止拖动 if (data.status === 'approved') { row.modify({ movable: false }); } } })
如果是表格渲染完成后,需要动态修改某行的可拖动状态,直接调用行更新方法即可:
// 拿到目标row实例后执行 row.update({ movable: false }); // 禁用拖动 row.update({ movable: true }); // 恢复拖动
- 全局临时切换
如果需要在特定场景下全局禁用所有行的拖动,直接修改表格配置项即可,4.9版本下该配置修改后即时生效,不需要重绘表格:
// 全局禁用 table.options.movableRows = false; // 全局恢复 table.options.movableRows = true;
注意:不建议手动解绑movableRows绑定的原生DOM事件,很容易破坏表格内部的事件逻辑,用上述官方提供的属性控制方式稳定性最高。
内容的提问来源于stack exchange,提问作者Nils
相关产品推荐
相关产品推荐

