首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流显示的AgGrid删除行不会刷新后端的数据

流显示的AgGrid删除行不会刷新后端的数据
EN

Stack Overflow用户
提问于 2022-08-22 05:46:38
回答 1查看 554关注 0票数 2

我有两个在python流中的AgGrid应用程序。两个AgGrid的连接和GridUpdateMode.MANUAL。我必须在第一个网格中选择行,然后单击update,这样第二个网格就可以从第一个网格中获得选定的行。第二个网格中的行应该被处理和保存。但是,我还必须删除第二个网格中的行。从第二个网格中删除行是用onRowSelected.实现的。

问题

注入onRowSelected的javascript代码工作并从UI中删除行,但是,具有数据的python变量没有更新,或者从UI中删除的行没有从实际变量中删除。

请帮助我在从UI中选择行时以及在后端变量.中删除行

代码:

代码语言:javascript
复制
js = JsCode(
"""
function(e) {
    let api = e.api;        
    let sel = api.getSelectedRows();

    const res = api.updateRowData({remove: sel});
    api.refreshCells({force : true});

    };
"""
)


    col1, col2 = st.columns(2)
    with st.container():
    with col1:
        smoke_gd = GridOptionsBuilder.from_dataframe(
            df_alternatives[["article", "number"]]
        )
        smoke_gd.configure_default_column(
            editable=False, resizable=True, sorteable=True
        )
        smoke_gd.configure_pagination(enabled=True)
        smoke_gd.configure_side_bar()
        smoke_gd.configure_selection(
            selection_mode="multiple", use_checkbox=True
        )
        smoke_gd_gridoptions = smoke_gd.build()
        smoke_grid_table = AgGrid(
            df_alternatieven[["article", "number"]],
            fit_columns_on_grid_load=True,
            update_mode=GridUpdateMode.MANUAL,
            gridOptions=smoke_gd_gridoptions,
            enable_enterprise_modules=True,
            allow_unsafe_jscode=True,
            theme="fresh",
            key="smoke_col1_gd",

        )
    selected_rows = smoke_grid_table["selected_rows"]

    with col2:
        smoke_col2_gd = GridOptionsBuilder.from_dataframe(
            df_alternatives[["article", "number"]]
        )
        smoke_col2_gd.configure_default_column(
            editable=False, resizable=True, sorteable=True
        )
        smoke_col2_gd.configure_pagination(enabled=True)

        smoke_col2_gd.configure_grid_options(onRowSelected=js)
        smoke_col2_gd.configure_side_bar()
        smoke_col2_gd.configure_selection(
            selection_mode="multiple", use_checkbox=True
        )
        smoke_col2_gd_gridoptions = smoke_col2_gd.build()
        smoke_grid_table_filtered = AgGrid(
            pd.DataFrame(selected_rows),
            update_mode=GridUpdateMode.MANUAL,
            gridOptions=smoke_col2_gd_gridoptions,
            allow_unsafe_jscode=True,
            reload_data=True,
            key="smoke_col2_gd",
        )
EN

回答 1

Stack Overflow用户

发布于 2022-08-27 04:06:56

JS直接在服务器端为您进行删除,强制刷新将在客户端自然地与最新版本一起进行吗?

您的JS代码可以变成:

代码语言:javascript
复制
js = JsCode(
"""
function(e) {
    let api = e.api;
    let sel = api.getSelectedRows();
    const tx = {remove: rowsToRemove,};
    gridOptions.api.applyServerSideTransaction(tx);
    api.refreshCells({force : true});
};
"""
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73440660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档