(As far as we're concerned, anyway) On the next post back, the grid will reload it's values from the form, (and some properties from view state), but not the whole dataset, since that was never stored in the form/view state.
All the above steps happen in the Page_Load() method.
After creating the dataset, we can bind the Grid View with a dataset.
User continues navigating page, but after first load, no more DB connection is made, grid is filled from Data Table Session object. Sometime, user sets Grid View to edit mode and makes some changes. Your best bet is probably to manually update the table stored in Session state in Row Updating or Row Command event.
I somehow imagine that there must be a way to reflect user's change on Gridview to Data Table Session object (NOT to actual DB) So when user continues navigating page, he will see updated data (since Data Table is Session-wide) however the actual DB is not updated. the one set by by Data Source ID instead of Data Source).