能否在dash-ag-grid中获取Ag Grid原生过滤后的行数据?
获取Dash Ag Grid过滤后的行数据
在Dash Ag Grid中,要获取应用原生过滤规则后的显示行数据,不用rowData(它返回全量数据),直接用组件的filteredRowData属性即可,这和Dash DataTable里的derived_virtual_data作用完全对应。
具体用法示例
在回调的State里指定filteredRowData:
from dash import Dash, html, callback, Output, State, Input import dash_ag_grid as dag import pandas as pd app = Dash(__name__) df = pd.DataFrame({ "Name": ["Alice", "Bob", "Charlie", "David"], "Age": [25, 30, 35, 40] }) app.layout = html.Div([ dag.AgGrid( id="ag_grid_table", rowData=df.to_dict("records"), columnDefs=[{"field": col} for col in df.columns], defaultColDef={"filter": True} # 开启原生过滤 ), html.Div(id="filtered_row_count") ]) @callback( Output("filtered_row_count", "children"), State("ag_grid_table", "filteredRowData"), Input("ag_grid_table", "filterModel") # 监听过滤变化触发回调 ) def show_filtered_row_count(filtered_rows, _): if not filtered_rows: return "当前无匹配行" return f"过滤后共显示 {len(filtered_rows)} 行数据" if __name__ == "__main__": app.run(debug=True)
额外说明
- 如果需要同时获取经过过滤+排序+分页后的当前视图行数据,可以用
virtualRowData属性,它对应DataTable的derived_virtual_data的完整功能。 - 确保你的
dash-ag-grid版本足够新(建议>=2.0.0),老版本可能没有这些属性。
内容的提问来源于stack exchange,提问作者Daniel White
相关产品推荐
相关产品推荐

