I have a rather complex page that dynamically builds user controls inside of a repeater. This repeater must be bound during the Init page event before `ViewState` is initialized or the dynamically created user controls will not retain their state.

This creates an interesting Catch-22 because the object I bind the repeater to needs to be created on initial page load, and then persisted in memory until the user opts to leave or save.

Because I cannot use `ViewState` to store this object, yet have it available during Init, I have been forced to store it in Session.

This also has issues, because I have to explicitly null the session value during non postbacks in order to emulate how `ViewState` works.

There has to be a better way to state management in this scenario. Any ideas?

**Edit:** Some good suggestions about using `LoadViewState`, but I'm still having issues with state not being restored when I do that.

Here is somewhat if the page structure

Page --> UserControl --> Repeater --> N amount of UserControls Dynamicly Created.

I put the overridden `LoadViewState` in the parent `UserControl`, as it is designed to be completely encapsulated and independent of the page it is on. I am wondering if that is where the problem is.