St.data_editor reverts back when other widgets is changed

I am using st.data_editor to input my tabular data and use the table ouptut as variable for my next function. After I click the “Confirm Entry” button, it works well. However, when i alter other widgets afterwards, it reverts back to the state before I clicked on the “Confirm Entry” button. Anyone can help me on this??

Part of my code:

df_test = pd.DataFrame(columns=[“Start Depth”,“End Depth”, “Hole Diameter”, “Run Number”])
df_entry = st.data_editor(df_test,num_rows=“dynamic”)

confirm = st.button(“Confirm Entry”)

Hi @zahid_hamidi_A.H

Perhaps you can replace df_entry with a session state variable instead so that other widget interaction would not reset the edited DataFrame.

Here are the Docs page for session state:

Hi @dataprofessor,

I’m not sure what to put in my code, not really familiar with session_state. If you could help me provide a little bit of snippet what I should include in my code that would be very much appreciated.

I think it has to do with session caching, not sure how

My current edits:

 if "df_entry" not in st.session_state:
    st.session_state["df_entry"] = pd.DataFrame(columns=["Start Depth","End Depth", "Hole Diameter", "Run Number"])

st.session_state["df_entry"] = st.data_editor(st.session_state["df_entry"],num_rows="dynamic")

df_entry = st.session_state["df_entry"]

Hi @zahid_hamidi_A.H

There are code snippets from this Docs page:

Also, you may need to specifiy the key parameter in order to retrieve changes made to the Data Editor.