 <p>Add the controls in the Page's Init event and they will be preserved in viewstate when posting back. Make sure they have a unique ID.</p> <p>See this link...</p> <p><a href="http://stackoverflow.com/questions/877339/asp-net-add-control-on-postback">ASP.NET Add Control on postback</a></p> <p>A very trivial example..</p> <pre><code>public partial class MyPage : Page { TextBox tb; protected override void OnInit(EventArgs e) { base.OnInit(e); tb = new TextBox(); tb.ID = "testtb"; Page.Form.Controls.Add(tb); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //tb.Text will have whatever text the user entered upon postback } } </code></pre>