The reason for !IsPostBack and TextBox2 being created during the Page_Load is because I'm dynamically creating X number of controls and setting their value from a datareader. they can then be modified by the user and saved to the table. There must be a way!
This post sounds like my problem but I'm getting different results than them.
ASP.Net ViewState doesn't work when Control become Enable=False