I want to get the selected rows to do some calculations.
Following is my code written with reference to this.
However the console raises an errot that Uncaught ReferenceError: gridOptions is not defined
.
I am a novice in JavaScript. I tried to research with Google for a long time, and found several similar cases, but there not one has been solved.
Is there someone could help me?
Thanks a lot.
from st_aggrid import AgGrid, GridOptionsBuilder, JsCode
import pandas as pd
import streamlit as st
getContextMenuItems = JsCode("""
function getContextMenuItems(params) {
var result = [
{
name: Show Selected Rows,
action: () => {
var selectedNodes = gridOptions.api.getSelectedRows();
var selectedData = selectedNodes.map(node => node.data);
console.log(`Selected Nodes:\n${JSON.stringify(selectedData)}`);
},
cssClasses: ['redFont', 'bold']
},
'separator',
'copy',
];
return result;
}
""")
grid_op = {
"enableRangeSelection": True,
"getContextMenuItems": getContextMenuItems,
}
df = pd.read_csv("somedata.csv")
options_builder = GridOptionsBuilder.from_dataframe(df)
options_builder.configure_grid_options(**grid_op)
grid_options = options_builder.build()
grid_table = AgGrid(df, grid_options, enable_enterprise_modules=True, editable=True, allow_unsafe_jscode=True)