Plotly Dash中结合DateRangePicker与Dropdown实现dash_table回调问题
Dash组件联动回调解决方案
你当前的代码仅将日期选择器作为表格更新的触发条件,没有纳入下拉框的状态,也没有对应的分支筛选逻辑,按以下步骤修改即可实现两个组件共同控制表格数据:
步骤1:调整回调输入项
给原回调新增下拉框filter_dropdown的value作为输入,这样下拉框选项变化时也会触发回调更新表格:
@app.callback(Output('table-container', 'data'), [Input('my-date-picker-range', 'start_date'), Input('my-date-picker-range', 'end_date'), Input('filter_dropdown', 'value')])
步骤2:新增分支筛选逻辑
修改回调函数,接收下拉框选中值,新增对应筛选逻辑:
def update_data(start_date, end_date, selected_branches): # 先按日期范围筛选 data = df.loc[start_date: end_date] # 如果选中了分支,再按分支过滤 if selected_branches and len(selected_branches) > 0: data = data[data['BR_CD'].isin(selected_branches)] return data.to_dict('records')
注意事项
- 原代码中所有
"是HTML转义字符,需要替换为正常的双引号"才能正常运行 - 原代码里的
to_dict('rows')写法在新版pandas中已弃用,替换为to_dict('records')即可 - 如果你需要表格里保留
ISSUE_DATE字段,可以在筛选后加data = data.reset_index()
内容的提问来源于stack exchange,提问作者hoa tran
相关产品推荐
相关产品推荐

