Dynamic Controls not avaialbe after postback reason is simple. As web is disconnect in nature it create one object of your page then create required HTML using that and send back to browser that renders it. So ViewState comes into picture to take care after post back and mange control on page despite multiple postbacks. Means dynamic controls not added to ViewState? Yes.
However any thing on HTML page that has type of input has ability to sent data to server. Means your text box is input type and does post data So how to get that value . Look below
if I add some control to page on page load like
if (!IsPostBack)
{
TextBox t = new TextBox();
t.ID = "txt1";
pnl1.Controls.Add(t);
}
then I can get values after postback as
if (Request["txt1"] != null)
{
value = Request["txt1"];
}
This is just concept not exact solution to your problem .. I guess you get the logic.