You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 20:50:03