You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Dash Callback仅响应DataTable第一列单元格点击以打开模态框

修改方案

要实现仅点击第一列单元格才触发模态框,核心是判断active_cell的列索引是否为0(Dash中列索引从0开始计数),具体修改如下:

@app.callback(Output('modal', 'is_open'),
              [Input('Data_Table', 'active_cell'),
               Input('close', 'n_clicks')],
              [State("modal", "is_open")])
def toggle_modal(n1, n2, is_open):
    # 点击第一列单元格,或者点击关闭按钮时切换模态框状态
    if (n1 is not None and n1['column_index'] == 0) or n2:
        return not is_open
    return is_open

关键修改说明:

  • 新增对n1(即active_cell对象)的双重判断:先确认n1不为空(避免初始加载时的空值报错),再检查column_index是否等于0(对应第一列)
  • 只有点击第一列单元格,或是点击关闭按钮时,才会切换模态框的显示状态;点击其他列单元格不会触发任何变化
  • 关闭按钮的原有逻辑保持不变,确保正常关闭模态框

内容的提问来源于stack exchange,提问作者Prmake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:04:52