Dash表格过滤后点击活动单元格显示内容异常问题求助
解决Dash Table过滤后点击单元格显示错误内容的问题
问题根源在于你当前用的是表格的原始全量数据data,但过滤后表格里的active_cell['row']是当前视图中过滤后的行索引,和原始数据的行索引不对应,所以会取到错误的内容。
正确的做法是使用Dash Table的derived_virtual_data属性,它存储的是经过过滤、分页、排序后的当前视图数据,和表格实际显示的内容完全匹配。
修改后的回调代码如下:
@app.callback( Output('textareaReq', 'children'), Input('srctable', 'active_cell'), State('srctable', 'derived_virtual_data') ) def get_active_cell_content(active_cell, derived_data): if active_cell and derived_data: row_idx = active_cell['row'] col_id = active_cell['column_id'] cell_content = derived_data[row_idx][col_id] if cell_content: return html.P(cell_content) # 无选中单元格或无数据时返回空内容 return html.P("")
几点补充:
derived_virtual_data会实时同步表格的当前状态,不管是过滤、分页还是排序,都能精准匹配选中的单元格- 新增了
derived_data的非空判断,避免表格无数据时触发报错 - 简化了回调的参数包裹方式,单个输入输出不需要用列表,代码更简洁
内容的提问来源于stack exchange,提问作者Rishim Mittal
相关产品推荐
相关产品推荐

