gpt4 book ai didi

plotly-dash - 带有全选复选框的破折号数据表?

转载 作者:行者123 更新时间:2023-12-03 14:47:34 28 4
gpt4 key购买 nike

我想知道是否有人知道如何在 Dash 数据表中创建一个“全选”复选框(它应该在红框区域)?这个想法是它将选择数据表中的所有可用行。

enter image description here

我已经通读了整个 Datatable 文档( https://dash.plotly.com/datatable/interactivity ),但没有提到这一点。尝试在线搜索也失败了。

我记得 dash-tables-experiment 有这个功能,但它已经被弃用了。任何意见是极大的赞赏。

最佳答案

当前 dash_table.DataTable 中不支持此选项元素。但是,可以通过添加两个 dbc.Button() 来解决此问题。零件到您的 Dash layout ,第一个用于全选,第二个用于取消全选。然后有一个 @app.callback单击按钮后(取消)选择所有内容。
你会得到这样的东西:
未选择任何行:No row selected
单击按钮后选择的所有行:
All rows selected after click
轮到回调将类似于以下内容(感谢 this git issue 中的@neilpanchal):

from loguru import logger
import dash
...

@app.callback(
[Output('df-table', 'selected_rows')],
[
Input('select-all-button', 'n_clicks'),
Input('deselect-all-button', 'n_clicks')
],
[
State('df-table', 'data'),
State('df-table', 'derived_virtual_data'),
State('df-table', 'derived_virtual_selected_rows')
]
)
def select_all(select_n_clicks, deselect_n_clicks, original_rows, filtered_rows, selected_rows):
ctx = dash.callback_context.triggered[0]
ctx_caller = ctx['prop_id']
if filtered_rows is not None:
if ctx_caller == 'select-all-button.n_clicks':
logger.info("Selecting all rows..")
selected_ids = [row for row in filtered_rows]
return [[i for i, row in enumerate(original_rows) if row in selected_ids]]
if ctx_caller == 'deselect-all-button.n_clicks':
logger.info("Deselecting all rows..")
return [[]]
raise PreventUpdate
else:
raise PreventUpdate

关于plotly-dash - 带有全选复选框的破折号数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61905396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com