在Tabulator-Dash中如何基于条件编程选中表格行
解决方案
方法1:纯Python回调实现(推荐)
dash_tabulator组件自带selectedRows属性,直接通过回调给该属性赋值需要预选中的行数据,即可自动触发行勾选,无需额外编写JS代码。
需要修改的代码部分如下:
- 首先导入依赖的State对象:
from dash.dependencies import Input, Output, State
- 修正表格配置中的selectable参数为布尔值(避免字符串配置导致的选中异常):
options = {"selectable": True}
- 修改模态框打开的回调,新增
selectedRows输出:
@app.callback( [Output("modal", "is_open"), Output("modal-table", "selectedRows")], Input("open-modal-button", "n_clicks"), State("table", "data"), prevent_initial_call=True ) def open_modal(n_clicks, home_table_data): return True, home_table_data
修改完成后打开模态框时,主表中已有的行会自动在模态框表格中预选中。
方法2:JS实现方案(仅当需要自定义复杂交互时使用)
你之前遇到的Tabulator引入报错是因为重复引入导致的版本冲突,dash_tabulator组件已经内置了Tabulator库,无需自行安装或引入。直接在JS代码中调用全局Tabulator对象即可:
// 直接获取模态框表格实例,无需额外导入Tabulator const modalTable = Tabulator.prototype.findTable("#modal-table")[0]; // 预选中id为3、4、5的行 modalTable.selectRow([3,4,5]);
你可以监听模态框打开的事件,触发上述代码执行即可实现预选中效果。
内容的提问来源于stack exchange,提问作者elmaskafa
相关产品推荐
相关产品推荐

