I got this working by trial and error but would really appreciate an explanation.
Summary: I am dynamically loading usercontrols from the host page.
Host Page .aspx
OnInit does a LoadControl and loads the control
User control .ascx
On Page_Load
-> First time load
--> I set a value to a hidden input type variable
--> I set a value to a ViewState object (using ViewState["test"] = "test")
-> Subsequent post backs
--> Hidden var still persists
--> ViewState is NULL !! (Why?)
If i move the code from Page_Load to Oninit:
-> Subsequent post backs
--> Both hidden var and Viewstate is NULL!
Why??