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

如何在Dash Mantine Component中设置联动多选框默认值

解决DMC MultiSelect默认全选联动选项的问题

要实现页面刷新时Operator Name自动选中所有可用选项,你需要同时联动更新它的data和value属性,而不只是data。具体修改如下:

  1. 修改回调的输出目标:让回调同时返回Operator组件的data和value两个属性
  2. 在回调函数中同步设置value:把计算出的所有可用Operator列表同时作为data和value返回

修改后的完整代码:

html.Div(
    className='accordion-content',
    children=[
        html.H5('Block Name', style={'marginTop':20}),
        dmc.MultiSelect(
            placeholder="Select Block Name",
            id="multiselect-block",
            value=all_blocks['Block_Name'].to_list(),
            data=all_blocks['Block_Name'].to_list(),
            style={'marginTop':10},
            clearable=True,
            searchable=True,
            nothingFound= 'No Options Found'
        ),

        html.H5('Operator Name', style={'marginTop':20}),
        dmc.MultiSelect(
            placeholder="Select Operator Name",
            id="multiselect-operator",
            value=[],  # 初始化留空即可,回调会自动填充
            data=[],
            style={'marginTop':10},
            clearable=True,
            searchable=True,
            nothingFound= 'No Options Found'
        )
    ]
)

@app.callback(
    # 同时绑定data和value两个输出属性
    [Output('multiselect-operator', 'data'),
     Output('multiselect-operator', 'value')],
    Input('multiselect-block', 'value')
)
def set_operator_option(chosen_block):
    if chosen_block is None or not chosen_block:
        # 未选择Block或清空选择时返回空列表
        return [], []
    else:
        df_operator = all_blocks[all_blocks['Block_Name'].isin(chosen_block)]
        operator_list = pd.unique(df_operator['Operator'].to_list())
        # 同时返回选项列表和选中值(全选)
        return operator_list, operator_list

关键说明:

  • 页面加载时,multiselect-block的初始值是所有Block,回调会自动触发,计算出对应的所有Operator,同时把这些Operator设为multiselect-operator的选项和选中值
  • 修改Block的选择时,Operator的选项和选中值会同步更新为当前Block对应的所有Operator
  • 增加not chosen_block判断,处理Block被清空的情况,避免出现异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:45:04