在虚线表过滤器上虚线活动单元格内容



我有一个Dashtable,它在多个页面上有超过1000行。我需要通过单击它来显示活动单元格的内容。 只要我没有过滤破折号表中的行,它就可以正常工作。一旦我应用过滤器(过滤带有一些数据的行)并单击表中的单元格,它就会向我显示旧的单元格引用,这意味着它显示的不是新选择的位置的内容,而是旧引用。

">

"
  • **# 回调函数

    @app.callback([Output('textareaReq', 'children')],
    [Input('srctable', 'active_cell')],
    [State('srctable', 'data')])
    # code for active cell click
    def get_active_cell_content(active_cell, data):
    if active_cell:`enter code here`
    location = active_cell
    strRow = data[location['row']]
    strActiveCell = strRow[location['column_id']]
    if strActiveCell:
    
    msg = strActiveCell
    return (html.P(msg))**
    

">
请注意,我在文本区域中显示输出

我知道这是一个老问题,但万一其他人来寻找答案,我设法让它工作,因为我遇到了同样的问题。

Plotly(现在?)允许您将 ID 列分配给数据表,以便在对表进行筛选或排序时,您可以使用此 ID 引用特定行,而不是依赖于行号:

df['id'] = df['your_id_column']

然后,在回调中,您可以打印active_cell并获取作为row_id返回的id,当数据表被过滤和排序时,这将正确调整:

{'row': 1, 'column': 11, 'column_id': 'reason', 'row_id': 'H_195202'}

链接到相关文章。希望这有帮助!

https://dash.plotly.com/datatable/interactivity

最新更新